在Facebook的Firebase上注销

Pet*_*994 1 firebase swift firebase-authentication

之前会问这个问题: Firebase注销无法在Swift中正常工作 使用Firebase 3注销用户,Swift仍然显示`currentUser'Firebase -iOS Swift:FIRAuth.auth()。signOut()未注销当前用户

但是,所有答案都不适用于我。我有VC 1,用户可以在其中登录,并且在viewdidappear中,我有打印该用户的打印文件。在VC 2中,我有一个按钮,应该注销用户并返回VC1。VC2中的代码2:

@IBAction func logOut(_ sender: UIButton) {
    if FIRAuth.auth()?.currentUser != nil {
        do {
           try! FIRAuth.auth()!.signOut()

        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
    FBSDKAccessToken.setCurrent(nil)
    loggedIn = false
    storedValuesData.setValue(nil, forKey: "savedLoginEmail")
    storedValuesData.setValue(nil, forKey: "savedLoginPassword")
    jumpToVC1()
}
Run Code Online (Sandbox Code Playgroud)

当我回到VC 1时,当用户按下注销按钮时,打印将再次打印用户的UID。但是该用户应注销,因此打印应为零。当我确定用户已注销时,如何确保仅显示VC 1?我以为完成块会很好,但是我不确定在这里如何工作...

Ali*_*tra 5

您不需要完成块,因为该方法是同步的。

@IBAction func logOut(_ sender: UIButton) {
    guard FIRAuth.auth()?.currentUser != nil else {
        return
    }            

    do {
       try FIRAuth.auth()?.signOut()
       FBSDKAccessToken.setCurrent(nil)
       loggedIn = false
       storedValuesData.setValue(nil, forKey: "savedLoginEmail")
       storedValuesData.setValue(nil, forKey: "savedLoginPassword")
       jumpToVC1()
    } catch let error as NSError {
        print(error.localizedDescription)
    }
}
Run Code Online (Sandbox Code Playgroud)