具有多个提供程序的Firebase身份验证

时间:2020-05-30 06:29:32

标签: firebase oauth firebase-authentication

我正在尝试创建用户身份验证屏幕,所以我决定使用Firebase。

但是,我遇到了一个问题。如今,我启用了2个提供程序,它们是:

1- E-mail/Password
2- Google

Enabled providers

我可以完美地创建用户。

当我使用E-mail/password选项创建用户并使用Gmail地址guilherme.nunes@fover.com.br时,Firebase会正常创建用户。

使用电子邮件后,我尝试使用Google提供程序的第二个选项,并使用同一电子邮件。现在,旧用户已在Firebase中替换为新提供程序。

account created

此后,如果我再次尝试使用第一个选项(电子邮件/密码)登录,则表明该用户不存在。

我尝试禁用该选项,即每个帐户只能有1个用户,但是Firebase会创建2个不同的用户。

我想要的是将1个帐户与多个提供商关联。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

启用此选项后,每个电子邮件地址仅允许一个帐户,Firebase的某些提供程序是某些电子邮件域的首选。最值得注意的是:Google提供者是@gmail.com地址的首选提供者。

因此,在您的初始过程中,您:

  1. 使用电子邮件和密码帐户注册用户something@gmail.com
  2. 使用Google帐户注册用户something@gmail.com

在这种情况下,第二次注册将替换/覆盖初始帐户。


您想要做的是链接两个帐户/提供者,如account linking文档中所述。使用这种方法,您无需在步骤2中完全注册帐户,而是将第二个帐户的凭据链接到已为该用户创建的email + password帐户。

文档中包含有关如何执行此操作的分步说明。如果您在进行这项工作时遇到麻烦,请使用minimal, complete/standalone code that reproduces where you got stuck发表一个新问题。