我已经在我的应用程序中使用firebase身份验证实现了两步身份验证,其中我使用gmail,facebook或简单的电子邮件登录进行身份验证 . 由于数字电话验证已迁移到firebase,我已通过将现有登录帐户(Facebook,gmail或电子邮件)与电话身份验证凭据相关联来实施firebase电话身份验证 . 与Facebook和电子邮件帐户一起使用时,它工作正常 . 当用户通过谷歌登录并尝试通过电话验证验证移动设备时,将打印以下日志:
signInWithCredential:失败com.google.firebase.auth.FirebaseAuthUserCollisionException:已存在具有相同电子邮件地址但登录凭据不同的帐户 . 使用与此电子邮件地址关联的提供商登录 .
阅读本文article . 是否与_602147中提到的问题相同?有没有相同的解决方案..
3 回答
在通过互联网和firebase文档本身进行研究之后,我在应用程序中使用firebase auth找到了这个两步验证的解决方案 .
只需将
PhoneAuthCredential
传递给上述方法即可验证手机是否已分配给您现有的帐户 . 确保其他任何帐户都不使用它 .now phone auth is available in firebase.Here is Code for Phone Auth using Firebase: 如果有任何问题费免费问我 .
抛出此异常是因为您已将电子邮件pw登录和facebook登录连接在一起,使用facebook one中使用的相同电子邮件的Google帐户未关联在一起 . 默认情况下,firebase不允许来自同一电子邮件的多个帐户发生此冲突 .
要解决此问题,您有两种选择
1. Link the google account to the facebook and email one's using
将新凭据添加到现有登录用户 .
2. Enable multiple account from same email(not recommended) from the firebase console
这将为谷歌登录用户创建新的uid,之前的Facebook登录用户将拥有旧的 .