2017-08-28 53 views
0

鏈接多個身份驗證提供我新的火力點,所以請耐心等待我的問題如下:的電話和電子郵件

用戶能夠登錄到我的應用程序使用手機驗證或電子郵件,但它會產生兩種不同的UID同一個用戶,我想實現的是一個UID一個用戶可以通過電話號碼,電子郵件地址或登錄密碼(合併的電話號碼,並在認證電子郵件)。我可以在Firebase上實現嗎?

謝謝

Problem of one user with two user UID

+0

據我所知,你不能爲同一用戶生成/合併兩個UID。 UID對於每個新的認證都是唯一的。即使用戶刪除了應用程序並使用相同的憑證重新登錄,他的舊UID也會激活到他的帳戶。 –

+0

好的,你有什麼方法或選擇來處理這種情況?我怎樣才能將數據庫中的相同用戶數據與兩個不同的UID鏈接? –

+0

還有另一種方法。你可以在這裏閱讀文檔有關鏈接多種認證[文件](https://firebase.google.com/docs/auth/android/account-linking) –

回答

0

Finally it works!!

最後,我得到預期的結果,謝謝穆罕默德·法爾漢留和我一起。

我以前的錯誤是發送短信代碼前,火力不鏈接多個身份驗證提供者,應該調用下面的函數直接得到火力地堡的短信代碼後,如預期一切都是好的!

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()); 
        } 
      } 
     }); 
    } 
相關問題