По-прежнему есть два пользователя Firebase для одной и той же учетной записи после связывания анонимного пользователя с входом в Google - PullRequest
0 голосов
/ 04 ноября 2018

Я работаю над приложением 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

Я уже пытался удалить анонимного пользователя до и после передачи учетных данных, но это, очевидно, не сработало, и я в итоге удалил их обоих, потому что они в основном один и тот же пользователь. Можно ли как-нибудь удалить анонимную учетную запись после ссылки?

...