Firebase 身份验证 UI - 登录与注册

Posted

技术标签:

【中文标题】Firebase 身份验证 UI - 登录与注册【英文标题】:Firebase Auth UI - Sign in vs Sign up 【发布时间】:2022-01-23 05:37:11 【问题描述】:

在我的 Firebase 网络应用中,我提供了 3 种不同的身份验证方法 - 电话、电子邮件/密码和 Google。

当新用户通过 FirebaseUI 登录流程时,有时他们不记得他们最初使用哪种方法注册并使用不同的方法(这会创建一个新用户)。例如,他们最初使用他们的电话号码创建了一个帐户,但当他们稍后返回时(未经身份验证,可能在新设备上),他们看到“使用 Google 登录”并尝试该选项 - 这会创建一个全新的用户/帐户。

然后他们会困惑为什么他们的帐户状态是空白/新的。

有没有办法这样定义登录流程,这样如果用户不存在,它就不应该创建重复的帐户(或至少提供链接到现有用户的选项)?

为了简单起见,我使用 FirebaseUI 并希望有一个标志或我可以在配置中设置的东西来实现这一点。

【问题讨论】:

【参考方案1】:

例如,他们最初使用自己的电话号码创建了一个帐户,但当他们稍后返回时(未经身份验证,可能在新设备上),他们看到“使用 Google 登录”并尝试该选项 - 这会创建一个全新的用户/帐户。

这是正常行为,因为您没有任何信息表明它是同一用户。为了解决这个问题,您应该在用户第一次使用电话号码注册时收集他/她的电子邮件地址。这样,您可以通过搜索电子邮件的存在来第二次检查用户是否已经在您的应用中拥有帐户,正如我在以下帖子中的回答中所解释的那样。这是针对实时数据库的:

Checking if a particular value exists in the Firebase database

这就是 Firestore:

Firestore query - checking if username already exists

有没有办法这样定义登录流程,这样如果用户不存在,它就不应该创建重复的帐户(或至少提供链接到现有用户的选项)?

是的,通过获取特定数据来识别用户。如上所述,您要么获得电子邮件地址,要么获得电话号码(如果它首次尝试使用 Google 登录)。

【讨论】:

嘿嘿。我可以帮助您了解其他信息吗?如果您认为我的回答对您有所帮助,请考虑通过单击左侧投票箭头下方的复选标记(✔️)来接受它。应将颜色更改为绿色。我真的很感激。谢谢!

以上是关于Firebase 身份验证 UI - 登录与注册的主要内容,如果未能解决你的问题,请参考以下文章

Firebase UI 身份验证登录错误 api 异常

com.firebase.ui.auth.FirebaseUiException:提供程序错误 - Firebase-UI 身份验证 Facebook 登录不起作用

有人设法在iOS上使用Firebase实现LinkedIn登录吗?

密码注册后 Firebase 云功能出现未经身份验证的错误

通过 Firebase UI 使用 Firebase 测试实验室电话身份验证

Firebase Auth UI 如何处理重新身份验证?