こんにちは
いつもお世話になっています。
Firebaseでメールアドレス認証のアプリを作っていたのですがこのようなエラーが起きてしましました。
お手数ですがこのエラー内容が詳しく理解できなかったので教えていただけますでしょうか。
※また、このアプリケーションはこちらのYouTubeをみて作成しております。
字数の問題で一部カットしておりますがご了承ください
ViewController
1 2 3 guard let data = snapshot?.data() else { return } 4 let user = User.init(dic: data) 5 print("ユーザー情報の取得ができました。(user.name)") 6 HUD.hide { (_) in 7 HUD.flash(.success, onView: self.view, delay: 1) { (_) in 8 self.presentToHomeViewController(user: user) 9 } 10 } 11 } 12 } 13 14
HomeViewController
1import Foundation 2import UIKit 3import Firebase 4 5class HomeViewController: UIViewController { 6 7 var user: User? { 8 didSet { 9 print("user?.name: ", user?.name) 10 } 11 } 12 13 @IBOutlet weak var nameLabel: UILabel! 14 @IBOutlet weak var emailLabel: UILabel! 15 @IBOutlet weak var dateLabel: UILabel! 16 @IBOutlet weak var logoutButton: UIButton! 17 18 @IBAction func tappedLogoutButton(_ sender: Any) { 19 handleLogout() 20 } 21 22 private func handleLogout() { 23 do { 24 try Auth.auth().signOut() 25 presentToSignUpViewController() 26 } catch (let err) { 27 print("ログアウトに失敗しました: (err)") 28 } 29 } 30 31 override func viewDidLoad() { 32 super.viewDidLoad() 33 34 35 logoutButton.layer.cornerRadius = 10 36 37 if let user = user { 38 nameLabel.text = user.name + "さんようこそ" 39 emailLabel.text = user.email 40 let dateString = dateFormatterForCreatedAt(date: user.createdAt.dateValue()) 41 dateLabel.text = "作成日: " + dateString 42 } 43 44 } 45 46 override func viewDidAppear(_ animated: Bool) { 47 super.viewDidAppear(animated) 48 confirmLoggedInUser() 49 } 50 51 private func confirmLoggedInUser() { 52 if Auth.auth().currentUser?.uid == nil || user == nil { 53 presentToSignUpViewController() 54 } 55 } 56 57 private func presentToSignUpViewController() { 58 let storyBoard = UIStoryboard(name: "SignUp", bundle: nil) 59 let viewController = storyBoard.instantiateViewController(identifier: "ViewController") as! ViewController 60 let navController = UINavigationController(rootViewController: viewController) 61 navController.modalPresentationStyle = .fullScreen 62 self.present(navController, animated: true, completion: nil) 63 } 64 65 private func dateFormatterForCreatedAt(date: Date) -> String { 66 let formatter = DateFormatter() 67 formatter.dateStyle = .long 68 formatter.timeStyle = .none 69 formatter.locale = Locale(identifier: "ja_JP") 70 return formatter.string(from: date) 71 } 72 73} 74 75
LoginViewController
1 2 3 4 guard let uid = res?.user.uid else { return } 5 let userRef = Firestore.firestore().collection("users").document(uid) 6 userRef.getDocument { (snapshot, err) in 7 if let err = err { 8 print("ユーザー情報の取得に失敗しました。(err)") 9 HUD.hide { (_) in 10 HUD.flash(.error, delay: 1) 11 } 12 return 13 } 14 15
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/03 07:32