【问题标题】:Android create a new user in Firebase Authentication but with data from Firebase FirestoreAndroid 在 Firebase 身份验证中创建一个新用户,但使用来自 Firebase Firestore 的数据
【发布时间】:2021-09-07 06:59:40
【问题描述】:

故事

我正在使用 Android Studio 中的 Java 和 Firebase 作为后端创建 2 个 Android 应用程序。

第一个应用程序(我们称之为医生应用程序是指医生应用程序)具有向 Firebase Firestore 注册新用户的功能。

第二个应用程序(我们称之为患者应用程序,意思是患者应用程序)具有显示患者记录的功能。

医生应用中,医生可以保存新患者的姓名、身份证号、出生日期和性别等数据,如下图所示:

如果医生点击注册按钮,应用会使用以下配置将患者数据保存到 Firebase Firestore(但不会将患者注册到 Firebase 身份验证):

患者的 ID 是使用随机字符串生成器以编程方式生成的。

然后患者可以使用 Patient app 在 Firebase 身份验证中使用电子邮件和密码注册该应用,如下所示:

首先,患者应从 Firebase Firestore 中的用户列表(由医生保存)中选择他/她的姓名。 然后,如果患者找到他/她的姓名,患者必须输入他/她的电子邮件和密码。 如果患者点击注册按钮,该应用会创建一个新用户来进行 Firebase 身份验证,如下所示:

并像这样将电子邮件存储到 Firebase Firestore(将电子邮件添加到选定的患者姓名):

问题

Patient app 的代码是什么,因此该应用可以:

  1. 在 Firebase 身份验证中使用电子邮件和密码创建一个新用户但使用 Firebase Firestore 中的用户 ID
  2. 将电子邮件保存到 Firebase Firestore 中的选定 ID?

注意:如果不可能,我会将电子邮件和密码字段添加到 Patient 应用程序的注册页面。

【问题讨论】:

  • 澄清一下,在 Firestore 中创建新文档时,您需要在 Firebase Auth 中创建一个新用户吗?
  • 你说得对 @Dharmaraj 实际上很好,在 Firestore 中创建新文档后,我需要在 Firebase Auth 中创建一个新用户

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


【解决方案1】:

如果您 implement a custom identity provider 您可以完全控制它使用的 UID。

如果您想使用内置的电子邮件+密码提供程序,您将无法控制它生成的 UID。最常见的替代方法是store the custom ID you want in the user's token as a custom claim

【讨论】:

    猜你喜欢
    • 2020-01-05
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2021-06-11
    相关资源
    最近更新 更多