在我的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进行身份验证,我是否需要或者我是否正在检查用户是否已正常登录?
答案 0 :(得分:2)
您编写的代码是正确的,但只有在调用view did方法时才会调用它,因此假设在viewDidAppear后,auth令牌到期,并且该屏幕上的用户正在从FIRAuth.auth.currentuser访问少量值,这将返回nil < / p>
尽管如此,只要auth中有状态更改,就会调用FIRAuth.auth()?。addStateDidChangeListener()。
handle = FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
// ...
}