2017-08-28 55 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()); 
        } 
      } 
     }); 
    } 
相关问题