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

时间:2020-01-09 18:24:41

标签: ios swift firebase 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);
        }
    }

此代码与上述代码相同(就像用户存在,但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);
        }
    }

2 个答案:

答案 0 :(得分:1)

如果要检查是否没有用户登录,请直接检查currentUser

let user = Auth.auth().currentUser;
if (user == nil) {
    // there is no user signed in when user is nil
}

另外,请确保参阅documentation以获得更多信息。

答案 1 :(得分:1)

override func viewDidLoad() {
    super.viewDidLoad()

    Auth.auth()!.addStateDidChangeListener() { auth, user in
        if user != nil {
            self.switchStoryboard()
        }
    }
}

或者您可以直接检查

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

   //user is logged in

    }else{
     //user is not logged in
    }

对于注册,您使用

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!)
  }
}
相关问题