我正在尝试在我的应用中配置addStateDidChangeListener
。我在Firebase Docs中读到,我应该能够在ViewController
的{{1}}方法中附加侦听器,并在viewWillAppear()
的{{1}中分离侦听器} 方法。
ViewController
中的用户,因此可以在viewWillDisappear()
中进行设置吗?
我本来以为将侦听器附加到AppDelegate
方法中,但是在StackOverflow上找到了关于此here的答案。我对这个答案的代码如何允许我在ViewControllers
中进行检查感到困惑。代码如下:
didFinishLaunchingWithOptions()
首先,以上代码被认为是设置以下Firebase方法的正确方法:
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
}
中访问此handle = Auth.auth().addStateDidChangeListener { (auth, user) in
// ...
}
?
第三,我在哪里分离NSNotification
和侦听器?是在ViewControllers
方法,NSNotification
方法还是其他方法中使用的?
答案 0 :(得分:0)
嗯,如果您以更好的方式设计它会更好,但是让我为您提供当前结构的帮助。
首先,由于使用了通知,因此您要做的就是在从方法中获取回调时发布通知调用。
第二,通知的工作原理是将其发布到代码中的某个位置,并在需要时在视图控制器中添加观察者。您可以通过在上述视图控制器中设置观察者来访问此通知。
第三,实际上取决于您。如果在应用程序进入后台时分离观察者,则应该这样做。如果这样做,则必须在它变为活动状态时进行设置。