[英]Android firebase auth: Link anonymous account with manual user still creating 2 accounts on firebase console
下面是重現該問題的步驟:
創建一個匿名帳戶
創建一個手動帳戶
mFirebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, task - > {
if (task.isSuccessful()) {
AuthCredential credential = EmailAuthProvider.getCredential(email, password);
linkWithAnonymousAccount(credential);
} else {
hideProgressDialog();
String msg = task.getException().getLocalizedMessage();
Utils.showDialogMessage(mContext, msg);
}
});
private void linkWithAnonymousAccount(final AuthCredential credential) {
mFirebaseAuth.getCurrentUser().linkWithCredential(credential)
.addOnCompleteListener(this, task - > {
if (task.isSuccessful()) {
callUpdateUserApi();
} else {
hideProgressDialog();
Utils.showDialogMessage(mContext, task.getException().getLocalizedMessage());
}
});
}
當前結果:在Firebase控制台上創建了2個帳戶,匿名帳戶和手動帳戶
預期結果:匿名帳戶應與手動帳戶合並。
Firebase版本
compile "com.google.android.gms:play-services-auth: '11.4.2'
它適用於社交帳戶,但不適用於手動帳戶。 請指教
您無法將2個現有帳戶與Firebase Auth關聯。 2個憑據之一必須是新的,並且尚未在Auth數據庫中。 您似乎正在登錄一個匿名用戶並創建一個電子郵件/密碼用戶,然后嘗試鏈接它們。 這將失敗,因為您無法鏈接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)...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.