iOS Firebase - как проверить, не вошел ли пользователь в систему - PullRequest
1 голос
/ 09 января 2020

Я не хочу проверять, не вошел ли пользователь в мое приложение. Если это произошло, я не хочу перенаправлять его на 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 ]

1 голос
/ 09 января 2020
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!)
  }
}
1 голос
/ 09 января 2020

Если вы хотите проверить, не вошел ли пользователь, проверьте currentUser напрямую.

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

Также обязательно ознакомьтесь с документацией для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...