Firebase退出然后切换故事板

时间:2017-02-24 17:52:51

标签: swift firebase firebase-authentication

出于某种原因,我实施退出方法的方式实际上并未签署用户。我想这是因为我在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)

如何在显示登录视图控制器时确保用户已注销?

1 个答案:

答案 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
    }
}