使用 Firebase Auth 进行身份验证时注销 Facebook 用户

Log Out Facebook User When Authenticated With Firebase Auth

我有以下代码,先使用 Facebook 验证用户身份,然后再使用 Firebase:

func authenticateWithFacebook() {
    FBSDKLoginManager().logIn(withReadPermissions: ["public_profile"], from: self) { (user, error) in // Signs up user with Facebook
        if let error = error {
            print(error.localizedDescription)
        } else if (user!.isCancelled) { // User cancels sign up
            print("User Cancelled")
        } else {
            self.authenticateFacebookUserWithFirebase(credential: FacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString))
        }
    }
}

func authenticateFacebookUserWithFirebase(credential: AuthCredential) {
    Auth.auth().signInAndRetrieveData(with: credential) { (user, error) in
        if let error = error {
            print(error.localizedDescription)
        } else {
            print("Success")
        }
    }
}

此代码按预期工作。用户通过 Firebase 身份验证后,我该如何处理应用程序中 "created" 的 Facebook 用户?我是否需要跟踪 currentAccessToken 并在令牌过期时提醒 Firebase 身份验证?如果不是,我是直接保留代码,还是应该使用 FBSDK 将 Facebook 用户从我的应用程序中注销?我只是不想让 Facebook 令牌在我的应用程序中四处浮动。

用户没有使用 Facebook 登录 Firebase。您的应用不会获取用户的 Facebook 电子邮件和密码凭据,以便将用户登录到您应用的 Firebase。相反,它获取该用户的访问令牌,然后该令牌用于通过 Firebase 对用户进行身份验证。因此,您无法从 Facebook 注销您的用户,但您可以做的是使访问令牌无效。