【问题标题】:FirebaseAuthUserCollisionException when trying to link google account with new phone number尝试将 Google 帐户与新电话号码关联时出现 FirebaseAuthUserCollisionException
【发布时间】:2019-11-21 19:01:03
【问题描述】:

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

首先用户通过手机认证,我需要验证一下,然后在你想要的时候,你可以用google登录,在app上有更好的体验...

两者的登录都使它完美,我对此没有任何问题,更重要的是,您卸载应用程序,重新安装它,就好像什么都没发生一样。

但是我遇到的问题是当用户更改他的电话号码并重新进入应用程序(例如:卸载并重新安装)时注册了他的号码,然后如果您想使用您的谷歌帐户,我会收到此错误:

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.

我可以这样做,以便用户可以在另一部手机上重复使用他的谷歌帐户,直到现在我来删除旧用户,但这并不好。

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

PS:如果他们说通过邮件激活多个帐户,它不起作用......

【问题讨论】:

  • 请记住我自己必须了解的一件事:“重新验证”,尽管有这个名字,但绝不是这种情况的答案。仅针对这种情况:您有一个经过正确身份验证的用户,需要执行一些需要最近身份验证的操作(更改邮件、密码或删除帐户)但用户创建或身份验证太旧.因此,您获得当前经过身份验证的用户并“重新验证”以允许这些操作。 reauthenticate 没什么用。

标签: android firebase authentication firebase-authentication


【解决方案1】:

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

第 1 步:

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

第 2 步:

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

【讨论】:

    【解决方案2】:

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

    但我遇到的问题是当用户更改他的电话号码并重新进入应用程序(例如:卸载和重新安装)时注册了他的号码,那么如果你想使用你的谷歌帐户

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

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

    或者,您可以捕获此异常,并在其发生时显示“更新电话号码”屏幕,用户输入他/她的新电话号码,然后将其与他的帐户相关联

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

    Link Multiple Auth Providers to an Account on Android

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2012-11-27
      • 2018-03-21
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      相关资源
      最近更新 更多