【问题标题】:Firebase User Auth check in App delegate应用程序委托中的 Firebase 用户身份验证检查
【发布时间】:2019-02-04 06:19:12
【问题描述】:

我已经在应用程序委托中实现了 Firebase Auth 和 Firebase 数据库,它检查用户是否登录。它检查数据库中的“用户”节点以查看子快照中是否有用户 ID,以及此操作大约需要 2-3 秒。

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    FirebaseApp.configure()

    if let uid = Auth.auth().currentUser?.uid {
        Database.database().reference().child("users").child(uid).observeSingleEvent(of: .value, with: { snapshot in
            if snapshot.exists() {
                print("App Delegate: User found!")
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                let vc  = storyboard.instantiateViewController(withIdentifier: "Main")
                self.window?.rootViewController = vc
                self.window?.makeKeyAndVisible()
            }
            else{
                print("App Delegate: User not found!")
                let storyboard = UIStoryboard(name: "Main", bundle: nil)
                let vc  = storyboard.instantiateViewController(withIdentifier: "Login")
                self.window?.rootViewController = vc
                self.window?.makeKeyAndVisible()
        }
        })
    }
    return true
}

登录视图控制器是初始视图控制器。当启动屏幕淡出时,显示登录视图控制器,如果用户登录,则显示主视图控制器,但在这种情况下,显示登录视图控制器的时间间隔为 2-3 秒。 我也尝试实现 NavigationController 但同样的问题。

那么,如果用户已登录并直接进入主视图控制器并有效管理 2-3 秒的时间间隔,我怎么能不显示登录视图控制器。

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    在本地会话中跟踪 isLogin 变量使其在登录和注销成功时为真和假。当第一次登录时,然后检查您的会话变量 isLogin。您可以将会话保存在 UserDefault 或 Keychain 中。这样你就可以避免你的问题。

    或者你只需​​要这样检查:

    if FIRAuth.auth().currentUser != nil {
       presentHome()
    } else {
     //User Not logged in
    }
    

    之后,当您导航到所需的 viewController 时,在那里完成其余的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 2022-06-30
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 2011-06-20
      • 2017-12-05
      • 1970-01-01
      相关资源
      最近更新 更多