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

时间:2017-04-06 00:01:25

标签: swift firebase firebase-authentication facebook-login google-signin

我想知道在一个函数调用中是否可以或者是一种可以将2种方法用于注销(Facebook和Google)的方法?我有一个注销按钮,当Facebook用户注销Facebook时,当然还有谷歌用户登录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)
        }
    }

1 个答案:

答案 0 :(得分:0)

这样做应该没什么问题,但是你会降低代码的效率,因为Firebase仍会检查其他类型的用户是否签名,即使用户已注销一次。同样,这不应该是一个太大的问题,但好处超过了在函数内部有条件的缺点。无论如何,做条件很容易。