在我的 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 进行的,我是否需要它或者我正在检查用户是否正常登录的方式?
Best Answer-推荐答案 strong>
您编写的代码是正确的,但只有在调用 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/
|