如何在firebase Flutter中将2个用户链接在一起

Posted

技术标签:

【中文标题】如何在firebase Flutter中将2个用户链接在一起【英文标题】:How to link 2 users together in firebase Flutter 【发布时间】:2021-05-26 20:20:03 【问题描述】:

我的应用是关于照顾老人的,有两种类型的用户,老人和观察者,观察者是老人家庭照顾老人的人。 注册时,观察者先注册自己,然后注册老人,两者都需要电子邮件。 然后,监护人将登记老人的药物。 之后,老人吃药时会进行检查,并会向观察者发送老人已吃药的通知。

如何在 Firebase Cloud Firestore 中关联这 2 个用户? 如何让 firebase 知道这个 watcher 是这个注册中的老人的 watcher?

【问题讨论】:

【参考方案1】:

您的问题非常广泛......但这里有一些一般性的“指导”:

您可以通过Firebase Authentication service 与用户关联的信息仅限于一组字段:电子邮件、电话号码、显示名称等。 如果您想向用户添加任何额外信息,例如与其他用户的链接,或实际地址、年龄……您应该将其存储在任何其他存储服务中,像 Google Cloud Firestore。

doc实际上表示:

Firebase 用户具有一组固定的基本属性 — 唯一 ID、 主电子邮件地址、姓名和照片 URL — 存储在项目的 用户数据库,可由用户更新(iosandroid、Web)。 您不能直接将其他属性添加到用户对象;反而, 您可以将附加属性存储在任何其他存储服务中, 像 Google Cloud Firestore。


你的问题:

如何在 Firebase Cloud Firestore 中关联这 2 个用户?我怎样才能 让 Firebase 知道这个观察者是这个老人的观察者 注册?

通常为在身份验证服务中创建的每个用户创建一个 Firestore 文档。最好使用用户 uid 作为 Firestore 文档的 ID,这样您可以在用户登录时轻松获取此文档。

为了识别观察者-老人关系,如果不知道您计划执行的确切查询,就很难回答,但一种直接的方法是将另一个“夫妻成员”的 uid 存储在每个用户文档中。

【讨论】:

进度如下:(注册观察者页面>>注册老年页面)两者都在collection('users')中,并且doc id是用户id,两者都有名为'userType'的字段,要么是'watcher',要么是'elderly',那么我该如何链接它们呢? 就像我在答案中所写的那样:“如果不知道您计划执行的确切查询,很难回答,但一种简单的方法是将另一个“夫妻中的成员”的 uid 存储在每个用户文档。”你可以有一个名为 linkedUser 的字段,如果另一个 usef 则包含 Id。 在linkedUser中添加uid的查询是什么?,我需要一个例子 我无法回答,这取决于您的应用程序。如果您知道要链接的两个用户,则可以在每个其他用户文档中写入每个用户 ID。 我想过这个想法,在我的应用中,watcher会先注册,然后是老人,那么如果老人账户还没有注册,如何在watcher字段中添加老人的ID呢?

以上是关于如何在firebase Flutter中将2个用户链接在一起的主要内容,如果未能解决你的问题,请参考以下文章

如何在flutter中将用户数据保存在云Firestore中

在 Flutter 中将数据保存到 Firebase 实时数据库

如何在flutter中将标记从firebase(真实数据库)检索到新的google maps api

如何在 Flutter 中将 XFile 转换为文件

Flutter & Firebase - 如何只允许每台设备有 1 个帐户

如何使用 Flutter 和 Firebase 为聊天应用制定规则