【问题标题】:Best way to link a user to their data in Firebase?将用户链接到他们在 Firebase 中的数据的最佳方式?
【发布时间】:2021-07-17 23:09:57
【问题描述】:

我在我的应用中使用 Firebase 进行身份验证并使用 Cloud Firestore 作为数据库。要将用户链接到他们的数据,创建了一个 Users 集合,每个文档名称都是我从 Firebase Auth 获得的 UserId。我的问题是,如果用户使用电子邮件和密码创建帐户,但随后使用同一电子邮件但使用 Google 身份验证登录,则 Google 身份验证会覆盖电子邮件和密码身份验证,并且 UserId 会更改。

【问题讨论】:

  • 您是否启用了使用相同电子邮件但不同提供商的多个注册?
  • 我想到了,但不会改变原来的用户ID吗?
  • 老实说,我从未经历过您在问题中解释的行为。通常,如果 Firebase 用户已经使用电子邮件注册,您需要将他的 Google 帐户关联到该用户。即使有可能它只会向用户添加另一个提供程序数据而不更改 Firebase 用户 uid。您能以某种方式解释或向我们展示 uid 是如何变化的吗?

标签: android firebase google-cloud-firestore firebase-authentication


【解决方案1】:

它不会覆盖电子邮件/密码帐户。实际上,如果您在控制台中检查用户列表,两者仍然存在。

这里发生的情况是,使用不同的提供商登录会生成一组单独的凭据。因此创建了一个新的用户 ID。它们是不同的凭据,只有坐在键盘前的温暖身体知道它们是否恰好属于同一个 DNA 和水的肉袋。

请注意,您可以link accounts together。因此,如果您想将共享电子邮件地址的提供商视为同一用户,您可以检查电子邮件帐户并要求用户通过在单个会话期间登录每个帐户来链接它们。

【讨论】:

  • 当我在 firebase 中检查身份验证页面时,只有 google 帐户,而不是电子邮件/密码
  • 我刚刚对此进行了测试,它运行良好。请参阅here(创建两个帐户并交替单击登录按钮;它们都存在)。您可能需要转到here 并在底部找到允许每个电子邮件地址拥有多个帐户的部分。
猜你喜欢
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-06
  • 2016-11-01
  • 2017-10-06
  • 2017-08-26
相关资源
最近更新 更多