Firebase身份验证Twitter和Google

时间:2018-12-19 21:23:14

标签: firebase firebase-authentication

我正在使用Firebase身份验证功能。我正在使用Facebook,Google,Twitter和电子邮件和密码作为提供者。默认功能是通过身份验证使用一封电子邮件。

如果我使用Facebook,Twitter或Google的帐户进行身份验证,然后尝试输入但使用电子邮件和密码进行身份验证,则会向我显示警告,提示我已使用另一种身份验证方法,并且可以执行此操作与上一个相同。

如果我使用电子邮件和密码进行身份验证,然后尝试通过Google,Twitter或Facebook进行身份验证,则这些身份验证方法会重叠,即同时使用这两种身份验证方法,并且在Firebase控制台中,我可以看到两者都是如此。

现在,如果我使用电子邮件和密码,Facebook(我认为)或Twitter进行身份验证,然后尝试通过Google进行身份验证,则会删除以前的身份验证方法。也就是说,如果使用Google进行身份验证后我使用的第一种身份验证方法是ID1,则ID1的条目将被删除,ID2的条目将被创建。

这在我的应用程序中产生了问题,因为这是丢失先前使用id1创建的用户注册表的一种方式。

我不确定这是否是预期的行为,但我不这么认为。 很明显,每当我提到使用另一种方法进行“新身份验证”时,我都要确保使用同一封电子邮件。

2 个答案:

答案 0 :(得分:0)

听起来您正在寻找帐户关联。在Firebase身份验证中,这是可能的。用户由其Firebase用户ID标识,您可以将多个身份验证提供程序链接到一个用户ID。

尝试查看此文档。我认为这是您要寻找的:https://firebase.google.com/docs/auth/web/account-linking

我希望它会有所帮助。

答案 1 :(得分:0)

由于Google拥有这些电子邮件地址,因此Google提供程序覆盖了现有提供程序的原因是Google emails being verified

要解决此问题,您需要在用户注册后通过发送电子邮件验证来验证电子邮件。这样可以确保Google登录不会取消链接提供商,因为该电子邮件被视为已验证。因此,如果用户(使用Google电子邮件)使用Facebook注册,请验证电子邮件,以便下次用户使用同一Google电子邮件登录时,Facebook提供商仍将保留在该用户上。

相关问题