Firebase 使用电子邮件和 Google 帐户进行身份验证

Firebase authenticate with both email and Google account

我正在使用 Firebase UI 在我的 Android 应用程序上实施用户身份验证,但我遇到了问题。 这是场景:

  1. 用户使用他们的电子邮件地址创建了一个帐户
  2. 用户退出该帐户
  3. 同一位用户尝试使用他们的 Google 帐户登录,该帐户恰好是他们在步骤 1
  4. 中用于创建帐户的同一电子邮件地址
  5. 用户登录成功,可以看到账户中的数据(与步骤1中的账户相同
  6. 用户注销
  7. 用户尝试使用电子邮件地址登录
  8. 用户收到 unknown error 并且无法使用电子邮件地址登录。使用 Google 帐户一切正常,但使用电子邮件登录不再有效。

我尝试使用 Web 客户端查找实际错误,但在尝试使用电子邮件地址登录时出现以下错误:

{
 "code":"auth/wrong-password",
 "message":"The password is invalid or the user does not have a password."
}

发生这种情况是因为当用户使用他的 Google 帐户第二次登录时,它会覆盖 Firebase 帐户中的数据。这意味着 Google 凭据仍然是默认凭据。发生这种情况的原因很明显,Google 帐户是可信来源,这就是我们出现这种行为的原因。

要解决您的问题,您需要根据该电子邮件地址link将这 2 个帐户合并到一个帐户中。