0
鏈接多個身份驗證提供我新的火力點,所以請耐心等待我的問題如下:的電話和電子郵件
用戶能夠登錄到我的應用程序使用手機驗證或電子郵件,但它會產生兩種不同的UID同一個用戶,我想實現的是一個UID一個用戶可以通過電話號碼,電子郵件地址或登錄密碼(合併的電話號碼,並在認證電子郵件)。我可以在Firebase上實現嗎?
謝謝
鏈接多個身份驗證提供我新的火力點,所以請耐心等待我的問題如下:的電話和電子郵件
用戶能夠登錄到我的應用程序使用手機驗證或電子郵件,但它會產生兩種不同的UID同一個用戶,我想實現的是一個UID一個用戶可以通過電話號碼,電子郵件地址或登錄密碼(合併的電話號碼,並在認證電子郵件)。我可以在Firebase上實現嗎?
謝謝
最後,我得到預期的結果,謝謝穆罕默德·法爾漢留和我一起。
我以前的錯誤是發送短信代碼前,火力不鏈接多個身份驗證提供者,應該調用下面的函數直接得到火力地堡的短信代碼後,如預期一切都是好的!
private void linkUserAuth(){
phoneCredential=PhoneAuthProvider.getCredential(verificationID,verificationCode);
firebaseAuth.getCurrentUser().linkWithCredential(phoneCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>(){
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()){
Log.d(TAG,"linkWithCredential:success");
FirebaseUser mergeAuthUser=task.getResult().getUser();
}else{
Log.w(TAG,"linkWithCredential:failure",task.getException());
}
}
});
}
據我所知,你不能爲同一用戶生成/合併兩個UID。 UID對於每個新的認證都是唯一的。即使用戶刪除了應用程序並使用相同的憑證重新登錄,他的舊UID也會激活到他的帳戶。 –
好的,你有什麼方法或選擇來處理這種情況?我怎樣才能將數據庫中的相同用戶數據與兩個不同的UID鏈接? –
還有另一種方法。你可以在這裏閱讀文檔有關鏈接多種認證[文件](https://firebase.google.com/docs/auth/android/account-linking) –