将匿名用户与google登录相关联后,同一个帐户仍然有两个Firebase用户

时间:2018-11-04 12:54:12

标签: android firebase firebase-authentication google-signin

我正在使用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控制台中,我仍然可以找到两个用户,如图所示: Firebase Users

我已经尝试过在通过凭据之前和之后删除匿名用户,但是它显然不起作用,我最终删除了这两个用户,因为它们基本上是同一用户。 有什么方法可以在链接后删除匿名帐户?

0 个答案:

没有答案