0

我已经在 App Store 上的一个应用程序中实现了 Firebase Auth(使用 Apple 登录)和 Firebase firestore。我在 firebase 文档的场景委托中实现了一个用于身份验证状态的侦听器。https://firebase.google.com/docs/auth/ios/start

它检查用户是否登录。该代码旨在在没有用户注册的情况下显示登录视图控制器,或者如果用户已经创建帐户并且在启动时没有注销,则显示主视图控制器。

但是,我从用户那里得到反馈,在注销和登录后,应用程序在 live 或 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
        }
    }
4

1 回答 1

1

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

weak var handle: AuthStateDidChangeListenerHandle?

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

这样就解决了问题,由于内存不足,操作系统不再杀死应用程序。

于 2020-05-15T19:41:18.130 回答