Я пытаюсь настроить addStateDidChangeListener
в своем приложении. Я прочитал в Документы Firebase, что должен иметь возможность прикрепить прослушиватель в метод viewWillAppear()
ViewController
и отсоединить слушателя в методе viewWillDisappear()
ViewController
. Можно ли настроить это в AppDelegate
, поскольку моему приложению нужно будет проверять пользователя во многих разных ViewControllers
?
Первоначально я думал подключить прослушиватель в методе didFinishLaunchingWithOptions()
, но нашел ответ об этом здесь на 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
// ...
}
Во-вторых, как я могу получить доступ к этому NSNotification
в моем ViewControllers
?
В-третьих, где мне отсоединить и NSNotification
, и прослушиватель? Это метод applicationWillTerminate()
, метод applicationWillResignActive()
или какой-то другой метод?