Автоматически ли при удалении учетной записи из Firebase пользователь выходит из системы?

#swift #firebase #firebase-authentication

#swift #firebase #firebase-аутентификация

Вопрос:

Я хотел бы знать, автоматически ли удаление учетной записи из Firebase выводит пользователя из системы?
Я имею в виду, если я хочу показать ему после удаления экрана входа, то мне просто нужно представить этот VC?
Я спрашиваю об этом, потому что, если я сделаю это подобным образом, произойдет сбой, и я думаю, это потому, что пользователь больше не существует на данный момент.

Я прав?

Код с некоторыми пояснениями :

 let user = FIRAuth.auth()?.currentUser

user?.deleteWithCompletion { error in
  if let error = error {
    // An error happened.
  } else {
     try! FIRAuth.auth()!.signOut()//This is unnecessary?

            let mainStoryboard: UIStoryboard = UIStoryboard(name:"Main",bundle:nil)

            let WelcomeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "WelcomeViewController")

            //Send the user to the WelcomeViewController
            self.present(WelcomeViewController, animated: true, completion: nil)
    // Account deleted. 
  }
}
  

Ответ №1:

Если вы удаляете своего текущего пользователя, вам нужно позаботиться о двух вещах:-

  • Удалите данные пользователя из базы данных Firebase (если таковые имеются)
  • Удалите учетные данные для авторизации (например:- email-пароль, facebook-логин, Twitter и т.д.)

    Чтобы удалить текущего пользователя, используйте приведенную ниже функцию, которая также сначала выводит пользователя из системы

      FIRAuth.auth()?.currentUser?.delete(completion: { (err) in
    
        print(err?.localizedDescription)
    
    })
      

    Если вы CMD НАЖМЕТЕ на функцию удаления, вы перейдете к ее документации :-

Удаляет учетную запись пользователя (также выводит пользователя, если это был текущий пользователь).

завершение необязательно; блок, вызываемый при завершении запроса на удаление учетной записи или при сбое. В будущем вызывается асинхронно в основном потоке.

Возможные коды ошибок: — @c FIRAuthErrorCodeRequiresRecentLogin — Обновление электронной почты является чувствительной к безопасности операцией, которая требует недавнего входа пользователя в систему. Эта ошибка указывает на то, что пользователь недостаточно недавно вошел в систему. Для устранения проблемы повторите проверку подлинности пользователя, вызвав reauthenticateWithCredential:завершение: для FIRUser.

Список кодов ошибок, общих для всех операций FIRUser, см. в разделе @c FIRAuthErrors. */

Короче говоря, если полученная ошибка равна нулю, учетная запись вашего текущего пользователя не только была удалена, но и автоматически вышла из системы, но вам нужно будет обработать другие FIRAuthErrors, как указано в документации

Комментарии:

1. Тогда да, вы уже автоматически вывели своего пользователя из системы.

2. Но почему я получаю сбой после указания пользователю на просмотр приветствия?

3. Где именно вы получаете ошибку? В этом классе или WelcomeViewController И в какой строке?

4. Если вы получаете доступ к информации текущего пользователя в этом классе, то, возможно, да…

5. Это ваш код welcomeViewController, который вы только что обновили? Попробуйте изменить на let user = FIRAuth.auth()?.currentUser на if let user = FIRAuth.auth()?.currentUser {..}