Firebase,通过电话进行身份验证和Google

时间:2019-07-12 03:06:41

标签: android firebase authentication firebase-authentication

在我的应用程序中,我使用Firebase进行身份验证。

首先,用户已通过电话进行身份验证,我需要对其进行验证,然后,在您需要的时候,您可以通过google登录以在该应用上获得更好的体验...

两者的登录使其完美,我对此没有任何问题,而且,您卸载了该应用程序,然后重新安装,好像什么都没发生。

但是我遇到的问题是,当用户更改其电话号码并重新输入该应用程序(例如:卸载并重新安装)时,他的电话号码已注册,那么如果您要使用Google帐户,则会收到此错误消息:

SIGN_IN

com.google.firebase.auth.FirebaseAuthUserCollisionException: This credential is already associated with a different user account.

重新认证

com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: The supplied credentials do not correspond to the previously signed in user.

我能做什么,以便用户可以在其他手机上重复使用他的google帐户,直到现在我删除了旧用户,但这不是很好。

或者我还有什么其他选择?

PS:如果他们说要通过邮件激活多个帐户,则无法使用...

3 个答案:

答案 0 :(得分:0)

您可以使用户每个电子邮件地址拥有多个帐户。要启用或禁用此选项,请按照下列步骤操作:

第1步:

转到Firebase控制台,选择“身份验证”,选择“登录方法”选项卡,然后在页面底部找到“高级”部分。

enter image description here

第2步:

允许创建具有相同电子邮件地址的多个帐户。

enter image description here

答案 1 :(得分:0)

抱歉,我没有足够的声誉来发表评论。

您为什么不尝试阅读此书-https://firebase.google.com/docs/auth/android/account-linking#link-auth-provider-credentials-to-a-user-account (遵循Google Provider部分)

如果要重置电话号码,则必须再次执行OTP验证电话号码的整个过程。

如果您发布一些代码,我可能会提供更好的帮助。

希望这会有所帮助!

答案 2 :(得分:0)

仅当您尝试链接已经与另一个帐户关联的身份验证提供程序时,才会发生该异常。您无法避免此异常,但是有多种方法可以处理它。

  

但是我遇到的问题是,当用户更改其电话号码并重新输入该应用程序(例如:卸载并重新安装)时,他的电话号码就会被注册,那么如果您想使用自己的Google帐户

据我了解,用户使用他的新电话号码创建一个新帐户,然后尝试使用与他的旧电话号码关联的Google帐户。这将不起作用,因为您无法知道用户在创建新帐户时是否更改了他的电话号码。

一种解决方案是让您的用户使用其Google帐户登录,然后显示一个UI以更新/添加他的电话号码。

或者,您可以捕获此异常,当异常发生时,显示“更新电话号码”屏幕,用户在该屏幕上输入与自己的帐户相关联的新电话号码

请参阅此页面以获取有关如何关联帐户的更多详细信息:

Link Multiple Auth Providers to an Account on Android