我不会检查用户是否未登录我的应用程序。 如果发生这种情况,我将不会将他重定向到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);
}
}
答案 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!)
}
}