gpt4 book ai didi

ios - AppDelegate 中的 Firebase addStateDidChangeListener

转载 作者:行者123 更新时间:2023-11-28 07:44:22 26 4
gpt4 key购买 nike

我正在尝试在我的应用中配置 addStateDidChangeListener。我读了Firebase Docs我应该能够在 ViewControllerviewWillAppear() 方法中附加监听器,并在 ViewController 中分离监听器>viewWillDisappear() 方法。是否可以在 AppDelegate 中进行设置,因为我的应用需要在许多不同的 ViewControllers 中检查用户?

我原本想在 didFinishLaunchingWithOptions() 方法中附加监听器,但找到了关于这个的答案 here在 StackOverflow 上。我对这个答案的代码如何允许我在 ViewController 中进行检查感到有点困惑。代码如下:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
NotificationCenter.default.addObserver(forName: NSNotification.Name.AuthStateDidChange, object: Auth.auth(), queue: nil) { (_) in
let user = Auth.auth().currentUser
}
return true
}

首先,上面的代码是否被认为是设置以下 Firebase 方法的正确方法:

handle = Auth.auth().addStateDidChangeListener { (auth, user) in
// ...
}

第二,如何在我的 ViewControllers 中访问此 NSNotification

第三,我在哪里分离 NSNotification 和监听器?它是在 applicationWillTerminate() 方法、applicationWillResignActive() 方法还是其他方法中?

最佳答案

好吧,如果您以更好的方式设计它会更好,但让我帮助您了解当前的结构。

首先,由于您使用了通知,因此当您从方法中获得回调时,您所要做的就是发布通知调用。

其次,通知的工作原理是将其发布在代码中的某个位置,并在需要时在 View Controller 中添加观察者。您可以通过在上述 View Controller 中设置观察者来访问此通知。

第三,这实际上取决于您。如果在应用程序进入后台时分离观察者,那么你应该这样做。如果这样做,则必须在它激活时进行设置。

关于ios - AppDelegate 中的 Firebase addStateDidChangeListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com