Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中一个函数中的多个注销方法_Swift_Firebase_Firebase Authentication_Facebook Login_Google Signin - Fatal编程技术网

Swift中一个函数中的多个注销方法

Swift中一个函数中的多个注销方法,swift,firebase,firebase-authentication,facebook-login,google-signin,Swift,Firebase,Firebase Authentication,Facebook Login,Google Signin,我想知道在一个函数调用中捆绑两种注销方法(Facebook和Google)是否可行?我有一个注销按钮,当一个facebook用户注销facebook时,当然还有当一个Google用户登录时,注销Google。还是应该在注销函数中创建一个条件?谢谢你的帮助 // handle sign out function func handleSignOut() { let firebaseAuth = FIRAuth.auth() do {

我想知道在一个函数调用中捆绑两种注销方法(Facebook和Google)是否可行?我有一个注销按钮,当一个facebook用户注销facebook时,当然还有当一个Google用户登录时,注销Google。还是应该在注销函数中创建一个条件?谢谢你的帮助

 // handle sign out function
    func handleSignOut() {

        let firebaseAuth = FIRAuth.auth()
        do {
            try firebaseAuth?.signOut()
        } catch let signOutError as NSError {
            print ("Error signing out: %@", signOutError)
        }

        // facebook sign out
        UserDefaults.standard.setIsLoggedIn(value: false)
        FBSDKLoginManager().logOut()
        print("did log out of facebook...")

        // google sign out
        UserDefaults.standard.setIsLoggedIn(value: false)
        GIDSignIn.sharedInstance().signOut()
        print("did log out of Google...")

        if FIRAuth.auth()?.currentUser == nil {
            let loginController = LoginController()
            present(loginController, animated: true, completion: nil)
        }
    }

这样做应该不会有太多问题,但会降低代码的效率,因为即使在用户注销一次之后,Firebase仍会检查其他类型的用户是否已签名。同样,这不应该是一个太大的问题,但是在函数中使用条件的好处大于缺点。不管怎样,做有条件的是很容易的