Firebase Auth stateListener有必要吗?

时间:2017-04-25 03:34:28

标签: ios firebase firebase-authentication

在我的iPhone应用程序主屏幕中,我需要检查用户是否已登录。在我的viewDidAppear()我这样检查:

override func viewDidAppear(_ animated: Bool) {
   if let user = FIRAuth.auth()?.currentUser {
       // user is logged in
   } else {
       // user not logged in, send to home page
       self.performSegue(withIdentifier: "NotLoggedInSegue", sender: self)
   }
}

在每个在线示例中,我都会看到人们在代码中使用FIRAuth.auth()?.addStateDidChangeListener。如果我的应用程序的唯一身份验证是通过Gmail进行身份验证,我是否需要或者我是否正在检查用户是否已正常登录?

1 个答案:

答案 0 :(得分:2)

您编写的代码是正确的,但只有在调用view did方法时才会调用它,因此假设在viewDidAppear后,auth令牌到期,并且该屏幕上的用户正在从FIRAuth.auth.currentuser访问少量值,这将返回nil < / p>

尽管如此,只要auth中有状态更改,就会调用FIRAuth.auth()?。addStateDidChangeListener()。

handle = FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
  // ...
}