ios - Firebase Auth stateListener 必要吗?

标签 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,我是否需要这样做,或者这是我检查用户是否正常登录的方式?

最佳答案

您编写的代码是正确的,但只有在调用 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/

相关文章:

firebase - 以编程方式写入 Firebase 托管

ios - Firebase 动态深度链接在安装后到达 nil

java - 发生 Firebase 身份验证注册错误

objective-c - 调用restorePreviousTransactionsOnComplete后,MKStorekit isFeaturePurchased返回NO

ios - 是否有适用于 ios 的良好 CSV 解析器?

ios - 为类型化数组创建快速数组扩展

java - 如何将用户引导至其特定 Activity ?

c# - Xamarin.Forms iOS依赖服务中的触觉反馈崩溃

java - Firebase 数据库复杂查询返回不正确的结果

android - 什么是 FirebaseAuth ID token 及其线程安全的 getIdToken 方法?