我正在使用Firebase UI在我的Android应用上实现用户身份验证,但我遇到了一个问题。场景如下:
- 用户使用其电子邮件地址创建帐户
- 用户退出该帐号
- 同一用户尝试使用其 Google 帐户登录,该帐户恰好与他们用于使用电子邮件地址创建帐户的电子邮件地址相同,这是步骤 1
- 用户已成功登录,并可以看到帐户中的数据(与步骤 1 中的帐户相同(
- 用户注销
- 用户尝试使用电子邮件地址登录
- 用户获得
unknown error
,无法使用电子邮件地址登录。使用Google帐户一切正常,但是使用电子邮件登录不再有效。
Web客户端查找实际错误,尝试使用电子邮件地址登录时出现以下错误:
{
"code":"auth/wrong-password",
"message":"The password is invalid or the user does not have a password."
}
发生这种情况
是因为当用户使用 Google 帐户第二次登录时,它会覆盖 Firebase 帐户中的数据。这意味着谷歌凭据仍然是默认凭据。发生这种情况的原因很明显,Google帐户是受信任的来源,这就是我们有这种行为的原因。
要解决您的问题,您需要根据该电子邮件地址将这两个帐户链接到一个帐户中。