Firebase身份验证Twitter和Google



我正在使用firebase身份验证功能。我将Facebook,Google,Twitter以及电子邮件和密码用作提供商。默认功能是通过身份验证使用单个电子邮件。

如果我使用Facebook,Twitter或Google的帐户进行身份验证,然后尝试输入,但使用电子邮件和密码来执行此警告,它说我已经使用了另一种身份验证方法,它允许我执行它与前一个。

如果我使用电子邮件和密码进行身份验证,然后尝试使用Google,Twitter或Facebook进行身份验证这些身份验证方法重叠,也就是说,在Firebase Console中都可以看到它们都是。

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

这在我的应用程序中产生了一个问题,因为这是丢失以前使用ID1创建的用户注册表的方法。

我不确定这是否是预期的行为,但我不这么认为。显然,每当我使用另一种方法进行"新身份验证"时,我确保使用同一电子邮件。

听起来您正在寻找帐户链接。这在Firebase-partentication中可能是可能的。用户由他们的firebase用户识别,您可以将多个身份验证提供商链接到用户ID。

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

我希望它有帮助。

Google提供商覆盖现有提供商是由于Google电子邮件被验证,因为Google拥有这些电子邮件地址。

要解决此问题,您需要在用户登录电子邮件验证后验证电子邮件。这可以确保Google登录不会链接提供商,因为该电子邮件被认为是验证的。因此,如果用户使用Facebook签署(使用Google电子邮件),请验证电子邮件,因此下次用户使用同一Google电子邮件登录时,Facebook提供商将保留在用户上。

最新更新