在firebase中获取所属组用户的详细信息

2024-01-07

下面是我的数据库结构firebase。我只有登录用户 ID。

User

-userId

    -Name
    -age
    -groups

        groupId1:true
        groupId2:true

Group

-groupId

    -name
    -desc
    -UserId

        -UserId1:true
        -UserId2:true

我想列出用户所属的所有组的详细信息。我的方法是,

  1. 通过检查 User 的索引来查找我的用户所属的所有组。
  2. 使用我们从步骤 1 中获得的 groupid 列表,从 Groups 中获取组的详细信息。

还有其他更好的建议吗?


根据您当前的数据结构,您确实必须执行两步方法:

  1. 加载组 ID 列表
  2. 加载每个组的元数据(例如名称)

这称为客户端加入,在 Firebase 中很常见。

或者,您可以在每个用户的组下复制有关每个组的最重要信息。例如。

UserGroups
  User1
    Group1: "This is the first group"
    Group2: "This is the second group"

正如您在此示例中看到的,我们替换了true标记为该组的实际名称。这样做的优点是,对于简单的用例,您只需阅读此列表,而不必进行客户端连接。缺点是您需要决定是否/如何保持数据同步。我在这里写了一个带有选项的答案:如何在 Firebase 中写入非规范化数据 https://stackoverflow.com/questions/30693785/how-to-write-denormalized-data-in-firebase

请注意,您的数据模型并未完全扁平化,因为您正在混合实体类型。我建议将每个用户的元数据(他们的名称和描述)从“用户所属的组列表”中分离出来。这给你留下了四个顶级列表:

Users
Groups
UserGroups
GroupUsers

这是多对多关系的常见模式,我在这里进一步描述:Firebase 中的多对多关系 https://stackoverflow.com/questions/41527058/many-to-many-relationship-in-firebase

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在firebase中获取所属组用户的详细信息 的相关文章

随机推荐