Swift, как выйти из системы, когда приложение закрывается с помощью Firebase Auth - PullRequest
1 голос
/ 02 июня 2019

Вот как пользователи перемещаются по моему приложению:

  1. Введите номер телефона
  2. Введите номер подтверждения (это позволяет им получить доступ к моему Firestore)
  3. Входитимя пользователя
  4. Теперь они находятся в главном приложении

Довольно просто, однако проблема в том, что если приложение выходит из строя (по какой-либо причине) или закрывается при вводе имени пользователя, онитехнически все еще вошли в мой Firestore.

Это проблема, потому что я запрограммировал приложение так, чтобы, когда пользователь снова открывает приложение, они сразу переходили на главный экран (я создал диспетчер приложений, чтобы справиться с этим).Если они закрывают приложение (или если оно падает) до ввода имени пользователя, они могут перейти прямо на главный экран без имени пользователя.

Я предпринял несколько разных попыток в методе applicationWillTerminate, чтобы отследить, в каком контроллере представления находится пользователь, выйдите из системы, чтобы при повторном открытии приложения мой менеджер приложений сказал Auth.auth ().currentUser == nil и переходит к начальному контроллеру представления для повторного запуска процесса регистрации.

var viewController : UIViewController?
        var vc = UsernameViewController()

        if viewController == vc {

            let firebaseAuth = Auth.auth()
                        do {
                            try firebaseAuth.signOut()
                        } catch let signOutError as NSError {
                            print ("Error signing out: %@", signOutError)
                        }

Я ожидаю, что пользователь, у которого не было возможности создать имя пользователя из-за закрытия или сбоя приложения, вернулсяк контроллеру начального вида, а не к главному экрану приложения.

В настоящее время я испытываю противоположное.

...