我已经使用
google and twitter
实现了 firebase 身份验证。现在,当我第一次使用我的电子邮件 ID 登录 Twitter 时 - [电子邮件受保护] 然后登录成功,我可以在 Firebase 身份验证中看到我的电子邮件和 Twitter 图标。
现在,当我使用相同的电子邮件 ID 登录 Google 时 - [电子邮件受保护] 然后它会在 Firebase 身份验证中替换为 google 图标。
现在,当我尝试使用相同的电子邮件 ID 使用 Twitter 再次登录时 - [电子邮件受保护] 然后它会抛出错误 提供商已链接到用户。
我已在设置中启用了
"Link accounts that use the same email"
选项。
我正在关注他们的官方doc
如何允许用户使用相同的电子邮件 ID 登录不同的提供商?
我的猜测是,您所说的
[email protected]
,实际上是在使用 <something>@gmail.com
或由 Google/gmail 托管的类似域。
Firebase 身份验证具有某些电子邮件域的首选提供商的概念,而 Google 身份验证是
@gmail.com
地址的首选提供商。这就解释了为什么使用 Google 登录会取代您之前使用的 Twitter 登录:Google 身份验证提供商实际上可以在内部证明它拥有/托管该电子邮件地址,而 Twitter 则不能。
如果您想使用多个提供商登录同一帐户,您应该将这些帐户链接在一起,这是一个单独的流程。只需选中“链接使用同一电子邮件的帐户”选项,Firebase 控制台不会自动为您执行此操作。