链接多个身份验证提供商的电话和电子邮

时间:2017-08-28 10:59:38

标签: android email firebase firebase-authentication

我是firebase的新手,所以请耐心等待我的问题:

用户可以使用电话验证或电子邮件登录我的应用程序,但它会为同一个用户生成两个不同的UID,我希望实现的是一个具有一个UID的用户可以使用电子邮件登录或通过电话号码登录(< strong>合并电话号码和身份验证中的电子邮件)。我可以在Firebase实现这一目标吗?

谢谢

Problem of one user with two user UID

1 个答案:

答案 0 :(得分:2)

Finally it works!!

最后,我得到了预期的结果,谢谢Mohammed Farhan和我一起。

我之前的错误是在连接多个auth提供程序之前将sms代码发送到firebase,在从Firebase获取sms代码后应该直接调用下面的函数,一切都很顺利!!

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());
                     }
            }
        });
    }