iOS Firebase - 如何检查用户是否未登录

Yar*_*rdi 4 ios firebase swift firebase-authentication

我不想检查用户是否未登录我的应用程序。如果发生这种情况,我不想将他重定向到 notLoggedView 或 verifyAccuontView。

此时代码如下所示,如果用户未创建,我无法进入 notLoggedView。

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true);

        let user = Auth.auth().currentUser;

        if (user == nil) {
            self.performSegue(withIdentifier: "notLoggedView", sender: self);
        }
    }
Run Code Online (Sandbox Code Playgroud)

此代码的工作方式与上面相同(如用户存在,但 firebase 帐户为空)

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true);

        if let user = Auth.auth().currentUser {
            // action when account exist
        } else {
            self.performSegue(withIdentifier: "notLoggedView", sender: self);
        }
    }
Run Code Online (Sandbox Code Playgroud)

use*_*632 6

override func viewDidLoad() {
    super.viewDidLoad()

    Auth.auth()!.addStateDidChangeListener() { auth, user in
        if user != nil {
            self.switchStoryboard()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者您可以直接查看

if Auth.auth().currentUser?.uid != nil {

   //user is logged in

    }else{
     //user is not logged in
    }
Run Code Online (Sandbox Code Playgroud)

对于您使用的注册

Auth.auth().createUser(withEmail: emailField.text!, password: passwordField.text!) { user, error in
  if error == nil {
    // 3
    Auth.auth().signIn(withEmail: self.textFieldLoginEmail.text!,
                       password: self.textFieldLoginPassword.text!)
  }
}
Run Code Online (Sandbox Code Playgroud)