出于某种原因,我实施退出方法的方式实际上并未签署用户。我想这是因为我在Firebase完成注销之前切换回我的登录故事板。这就是我所拥有的:
try! FIRAuth.auth()!.signOut()
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "LoginStoryboard")
self.present(controller, animated: true, completion: nil)
如何在显示登录视图控制器时确保用户已注销?
答案 0 :(得分:2)
此处的关键是在您知道用户已注销之后移至登录视图,而不是之前。
signOut()函数没有完成处理程序(嘿firebase!add one),所以你必须使用另一种方法来监视状态变化。
有几种方法可以做到这一点,但一个简单的方法是添加一个监听器/观察器来进行身份验证状态更改,并在状态发生变化后继续执行登录控制器。
像这样的东西
FIRAuth.auth()?.addStateDidChangeListener { auth, user in
if let user = user {
// user is signed in so don't do anything
} else {
//the user has now signed out so go to login view controller
// and remove this listener
}
}