在我的应用程序中,我使用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:如果他们说要通过邮件激活多个帐户,则无法使用...
答案 0 :(得分:0)
您可以使用户每个电子邮件地址拥有多个帐户。要启用或禁用此选项,请按照下列步骤操作:
第1步:
转到Firebase控制台,选择“身份验证”,选择“登录方法”选项卡,然后在页面底部找到“高级”部分。
第2步:
允许创建具有相同电子邮件地址的多个帐户。
答案 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以更新/添加他的电话号码。
或者,您可以捕获此异常,当异常发生时,显示“更新电话号码”屏幕,用户在该屏幕上输入与自己的帐户相关联的新电话号码。
请参阅此页面以获取有关如何关联帐户的更多详细信息: