Останавливаются ли авторизованные пользователи, когда я просто завершаю работу приложения, не выходя из системы? - PullRequest
0 голосов
/ 23 мая 2018

Я новичок в Firebase, и я в настоящее время пытаюсь обработать (при загрузке приложения), если пользователь вошел в систему. Поэтому согласно книге я должен проверить это следующим образом:

if Auth.auth().currentUser?.uid == nil {
      //do smth  
}

Таккак выясняется (если я что-то не пропустил и не ошибаюсь), он проверяет только последнего пользователя в разделе аутентификации консоли.Я имею в виду, если я зарегистрировал пользователя таким образом:

 Auth.auth().createUser(withEmail: email, password: password) { (User, Error) in
        if Error != nil {
            print(Error)
            return
        }

И просто закройте мое приложение, тогда во время проверки оно увидит только последнего зарегистрированного пользователя.И после обнаружения этого вошедшего в систему пользователя, и если я выйду из системы, приложение не увидит остальных вошедших в систему пользователей в следующей процедуре проверки.enter image description here

Так что это выглядит так:

  1. Я запустил приложение, затем создал пользователя несколько раз (создать, затем завершить приложение и снова создать, затем завершить приложение и вернутьсяснова)
  2. Затем, после шага 1, проверьте, вошел ли пользователь. Это последний пользователь или 1-й пользователь, которого я не знаю, потому что я не нашел, и подробная информация о нем.

    if Auth.auth().currentUser?.uid == nil {
      //do sign out
      do {
        try Auth.auth().signOut()
      } catch let logoutError {
        print(logoutError)
      }
    

    }

  3. Он находит вошедшего в систему пользователя, затем я выделяю этого пользователя.

  4. Я закрываю приложение.
  5. Я снова запускаю это приложение и во время первоначальной проверки зарегистрированных пользователей оно не находит ни одного из них.

    override func viewDidLoad() {
    super.viewDidLoad()
      navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(handleLogout))
    
    //user is not logged in
    if Auth.auth().currentUser?.uid == nil {
        signOut()
    }
    

    }

Почему?Я имею в виду, что я не выходил из системы самостоятельно зарегистрированным пользователям, и я знаю, что после вызова createUser func, этот createUser func также регистрирует пользователя.

Может быть, приложение выходит из системы, если я создаю нового?тогда почему я не нашел никакой информации об этом поведении (Пожалуйста, если у кого-то есть подсказка, я был бы признателен.

1 Ответ

0 голосов
/ 23 мая 2018

Пользователи аутентификации Firebase остаются в системе до тех пор, пока:

  • , либо ваш код явно их подписывает
  • , либо вы создаете другого пользователя в том же приложении на том же устройстве
  • или пока не произойдет событие, которое потребует от них повторного входа (например, смена пароля)

В одном приложении на одном устройстве может быть только один вошедший в систему пользователь.Если вы войдете (или создадите) другого пользователя на том же устройстве, предыдущий пользователь выйдет из системы.

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