登录后为什么Firebase无法识别当前用户?

时间:2018-03-22 02:25:08

标签: swift firebase firebase-authentication

使用Auth.auth()。signOut()退出Firebase中的当前用户后,我运行此操作以注册新用户:

    guard let email = emailTextField.text, let password = passwordTextField.text else {
        print("Form is not valid")
        return
    }

    Auth.auth().createUser(withEmail: email, password: password, completion: { (FIRUser, error) in
        if error != nil {
            print(error ?? "error")
        }
        print("Account creation successful")
    })


    guard let uid = Auth.auth().currentUser?.uid else {
        print("No UID")
        return
    }

但是,它无法识别任何当前用户。但是,如果我再次运行它,在同一个会话中,它将识别用户。我尝试使用Dispatch队列设置延迟,但这没有帮助。

1 个答案:

答案 0 :(得分:1)

重新启动应用时,Firebase可能需要一段时间才能验证用户是否仍在通过身份验证。它不是阻止你的应用程序,而是允许应用程序继续,然后激发所谓的"身份验证状态更改"事件完成后。为确保您能够捕获此事件,您需要添加完成块,如Get the currently signed-in user

所示
handle = Auth.auth().addStateDidChangeListener { (auth, user) in
  // ...
}
相关问题