我正在使用 Firebase 的新框架,我试图分别在登录和注册 VC 上监控用户的登录状态。问题是如果注册 View 上的登录状态发生变化,登录 View 上的身份验证状态也会被调用。我的问题是,如何删除授权状态?我在 Firebase 网站上找到了语法,但在考虑我的身份验证状态代码时对要传递的内容感到有点困惑:
FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in
if let theUser = user {
// User is signed in.
print("LOGGED IN!!!! :::: \(theUser)")
self.dismissViewControllerAnimated(true, completion: nil)
} else {
// No user is signed in.
print("Need to login first.")
}
}
用于删除身份验证的代码,但不确定要传入什么。
FIRAuth.auth()?.removeAuthStateDidChangeListener(FIRAuthStateDidChangeListenerHandle)
说我传入了一个 FIRAuthStateDidChangeListenerHandle
,但我如何获得它,或者我是否以不同的方式重写我的 authState 代码?
最佳答案
只需将身份验证存储在一个变量中
self.authListener = FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in
if let theUser = user {
// User is signed in.
print("LOGGED IN!!!! :::: \(theUser)")
self.dismissViewControllerAnimated(true, completion: nil)
} else {
// No user is signed in.
print("Need to login first.")
}
}
稍后删除
FIRAuth.auth()?.removeAuthStateDidChangeListener(self.authListener)
关于ios - 在 viewDidDisappear 上删除 Firebase authState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37642091/