2017-10-05 11 views
0

を2つのアカウントを作成するには、問題を再現する手順は、次のとおりですアンドロイドfirebase AUTH:リンク匿名アカウントマニュアル、ユーザーとまだここfirebaseコンソール上

  1. 匿名アカウントを作成し、手動アカウントを作成

    (タスク、isSuccessful()){ AuthCredential cre(this、task - > { if(task.isSuccessful()){ dential = EmailAuthProvider.getCredential(電子メール、パスワード); linkWithAnonymousAccount(資格情報)。 } else { hideProgressDialog(); String msg =タスク.getException()。getLocalizedMessage(); Utils.showDialogMessage(mContext、msg); } });

  2. リンクマニュアルアカウントは匿名アカウントで

プライベートボイドlinkWithAnonymousAccount(最終AuthCredential資格){ mFirebaseAuth.getCurrentUser()linkWithCredential(資格) .addOnCompleteListener(これは、タスク - > { 場合(task.isSuccessful()){ callUpdateUserApi();} 他{hideProgressDialog(); Utils.showDialogMessage(mContext、task.getException()getLocalizedMessage()); } }); }

現在の結果:2つのアカウント、匿名アカウントと手動アカウントがfirebaseコンソール上で作成されている

期待される結果:匿名アカウントは手動でアカウントにマージする必要があります。

それは社会的なアカウントで正常に動作しますが、手動でアカウントを使用していません

compile "com.google.android.gms:play-services-auth: '11.4.2' 

Firebaseバージョン。アドバイスしてください

答えて

1

既存の2つのアカウントをFirebase Authにリンクすることはできません。 2つの資格情報の1つが新規で、まだ認証データベースに存在していない必要があります。 匿名ユーザーにサインインして、電子メール/パスワードユーザーを作成し、それらをリンクしようとしているようです。 2人の既存のユーザーを異なるUIDでリンクすることはできないため、これは失敗します。その場合は、手動でデータをコピーして失効したユーザーを削除する必要があります。

あなたがするべきことは、createUserWithEmailAndPasswordではありません。 signInAnonymously匿名ユーザーは、電子メール/パスワードの資格情報を直接リンクします。

// Initialize the email/pass credential and directly link it to the 
// current anonymous user already signed in. 
AuthCredential credential = EmailAuthProvider.getCredential(email, password); 
mFirebaseAuth.getCurrentUser().linkWithCredential(credential)... 
+0

私はGoogleサポートチームから回答を得ました。彼らは同じことを言って、試してみましたが、期待通りに機能しました。ありがとう – thanhbinh84

関連する問題