检测用户是否已使用其他提供程序登录



我有一个应用程序,你可以通过Apple sign in或Google sign in登录。假设我有一台安卓系统,我可以通过Google登录。然后我换成iPhone,想使用苹果登录。

目前,如果我使用苹果登录,与使用谷歌登录时相比,我将从FirebaseUser获得不同的uid。

有没有一种方法可以检测到Firebase上已经有用户并获取该uid?

我正在使用Flutter,并且读过关于链接的文章,但这并不是我想要的。

您可以将多个身份验证提供者链接到一个帐户,但这仍然需要用户首先使用其现有用户凭据登录。Google帐户(例如@gmail.com(和Apple ID(例如@icloud.com(的域可能不同,因此Firebase不太可能像对待电子邮件密码和Google帐户那样将它们视为单个帐户。

允许用户登录多个提供商的典型流程是:

  1. 询问他们的电子邮件地址,这是他们在Firebase中的主要标识符
  2. 致电fetchSignInMethodsForEmail,查看与该电子邮件地址相关联的提供商
  3. 如果有的话:显示一个屏幕,用户可以从关联的提供商中进行选择以完成登录
  4. 如果没有:显示一个屏幕,允许用户选择您想要允许的任何提供商

正如Dharmaraj所说,在第4步中,您可以允许将新提供商与现有帐户链接,但您可能需要向用户询问更多信息,而不仅仅是他们的电子邮件地址,才能进行映射。

相关内容

最新更新