我已将 Firebase Auth 添加到我的 Android 应用程序并启用了 Google 登录,并添加了链接帐户、取消链接帐户和撤销帐户访问权限的选项。但我有几个问题:这些功能如何与 Firebase Auth 配合使用。
当我撤销帐户访问权限时,在 Firebase 身份验证页面中,Google 仍然 作为身份验证提供商。我仍然可以使用我刚刚撤销的帐户登录我的应用程序。那么撤销帐户访问权限到底是做什么的?
当我取消我的 Google 帐户与 Firebase Auth 的链接时,Google 不 作为身份验证提供商。 但是,我仍然可以使用相同的 Google 帐户登录并有权访问相同的 Firebase Auth 帐户!即使 Google 帐户已取消关联,为什么还会发生这种情况?它肯定应该创建一个新帐户,因为它不应该访问旧的“未链接”帐户吗?那么,如果他们仍然可以使用 unlinked Google 帐户登录,Unlinking 会做什么?
如果我的用户已使用其 Google 帐户登录并在我的应用程序中登录其
com.google.firebase.auth.FirebaseAuthUserCollisionException: This credential is already associated with a different user account.
。那么是否可以从 first帐户中完全删除凭证而不删除它?
):
mAuth.getCurrentUser().unlink("google.com").addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
updateUI(mAuth.getCurrentUser());
}
});
撤销代码(来自第171行:https://github.com/firebase/quickstart-android/blob/e8743a69ae3e21b66414fe9890b0dffaac20ff1d/auth/app/src/main/java/com/google/firebase/quickstart/auth/java /GoogleSignInActivity.java
):
// Firebase sign out
mAuth.signOut();
// Google revoke access
mGoogleSignInClient.revokeAccess().addOnCompleteListener(this,
new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
updateUI(null);
}
});