我正在使用Android应用程序并使用Firebase身份验证来管理用户。 我正在为所有新用户创建一个匿名帐户,允许他们自由地随意扔应用程序。但是,有时,我会要求用户使用Google登录实际登录(现在),当然,我会将匿名凭据与google帐户相关联。
以下是代码(Android-Java):
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
GoogleSignInClient googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
Intent signInIntent = googleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, SIGN_IN_GOOGLE_ARC);
这是链接:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SIGN_IN_GOOGLE_ARC:
Task<GoogleSignInAccount> completedTask = GoogleSignIn.getSignedInAccountFromIntent(data);
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
AuthCredential authCredential = GoogleAuthProvider.getCredential(account != null ? account.getIdToken() : null, null);
firebaseAuth.getCurrentUser().linkWithCredential(authCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
//Do something
}
});
} catch (ApiException e) {
Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
}
break;
}
}
代码运行正常,并且帐户已被关联。令我困扰的是,在Firebase控制台中,我仍然可以找到两个用户,如图所示:
我已经尝试过在通过凭据之前和之后删除匿名用户,但是它显然不起作用,我最终删除了这两个用户,因为它们基本上是同一用户。 有什么方法可以在链接后删除匿名帐户?