在Scene Delegate中实现Firebase Auth侦听器后应用程序崩溃



我已经在应用商店上的一个应用程序中实现了Firebase Auth(使用苹果登录(和Firebase firestore。我在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
}
}

已解决:崩溃是由强引用循环导致的内存泄漏引起的。这里有一个很好的教程来理解它:https://www.youtube.com/watch?v=q0-DIJszYRo为了避免这种情况,我使用了weak&【弱自身】

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

这就解决了问题,操作系统不再因为内存不足而扼杀应用程序。

最新更新