在我的 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,我是否需要这样做,或者这是我检查用户是否正常登录的方式?
最佳答案
您编写的代码是正确的,但只有在调用 view did 方法时才会调用它,因此假设在 viewDidAppear 后,身份验证 token 过期,并且该屏幕上的用户正在从 FIRAuth.auth.currentuser 访问几个值,这将返回 nil
尽管如此,只要身份验证中发生状态更改,就会调用 FIRAuth.auth()?.addStateDidChangeListener()。
handle = FIRAuth.auth()?.addStateDidChangeListener() { (auth, user) in
// ...
}
关于ios - Firebase Auth stateListener 必要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43601137/