Сбой приложения после внедрения прослушивателя аутентификации Firebase в Scene Delegate - PullRequest
0 голосов
/ 06 мая 2020

Я реализовал Firebase Auth (вход через Apple) и Firebase firestore в приложении, доступном в App Store. Я реализовал прослушиватель для состояния аутентификации в делегате сцены из документации firebase. https://firebase.google.com/docs/auth/ios/start

Проверяет, вошел ли пользователь в систему или нет. Код предназначен для представления контроллера представления входа в систему, если пользователь не зарегистрирован, или контроллера основного представления, если пользователь уже создал учетную запись и не вышел из системы при запуске.

Однако у меня есть отзывы от пользователей что после выхода и входа в систему приложение продолжает вылетать как в реальном времени, так и в testFlight, у меня ничего не сообщается в Crashlytics или App Store Connect. Я ищу помощи у людей, которые столкнулись с такими же проблемами.

 var handle: AuthStateDidChangeListenerHandle?

 handle = Auth.auth().addStateDidChangeListener { (auth, user) in
        if((user) != nil){
            let home = TabBar()
            home.selectedIndex = 1
            self.window?.rootViewController = home
        } else if((user) == nil) {
            print("Not Logged in")
            let signup = SignUpVC()
            self.window?.rootViewController = signup
        }
    }

1 Ответ

0 голосов
/ 15 мая 2020

Решено: Cra sh был вызван утечкой памяти из-за сильного цикла ссылок. вот отличный учебник, чтобы понять это: https://www.youtube.com/watch?v=q0-DIJszYRo Чтобы этого избежать, я использовал weak & [weak self]

weak var handle: AuthStateDidChangeListenerHandle?

handle = Auth.auth().addStateDidChangeListener { [weak self] (auth, user) in

Это решает проблему, ОС не завершение работы приложения из-за нехватки памяти.

...