【问题标题】:Firestore Android Join CollectionsFirestore Android 加入集合
【发布时间】:2018-07-13 12:40:42
【问题描述】:

我有一个关于 Cloud Firestore 的问题:

我有一个集合组,它只保存组信息(名称、找到日期等)和一个 group_members 集合,它基本上有两个字段(group_iduser_id

现在我需要获取用户所属的所有组。目前,我只是浏览group_members 集合并检查user_id 是否与当前登录的用户匹配。如果是这样,我将group_id 存储在一个列表中。之后,我只需使用列表中的 group_id 下载所有组。

我觉得有更好的解决方案,但我找不到。如果有人可以分享提示或解决方案,那就太好了。

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    现在我需要获取用户所属的所有组。

    为此,我建议您使用如下所示的数据库结构:

    Firestore-root
       |
       --- group_members (collection)
             |
             --- uid (document)
                  |
                  --- user_groups (map)
                        |
                        --- group_id: true
                        |
                        --- group_id: true
    

    要实际查询此结构,请使用以下代码行:

    对于安卓:

    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
    DocumentReference uidRef = rootRef.collection("group_members").document(uid);
    uidRef.get().addOnCompleteListener(/* ... */);
    

    对于 Kotlin:

    val rootRef = FirebaseFirestore.getInstance()
    val uidRef = rootRef.collection("group_members").document(uid)
    uidRef.get().addOnCompleteListener(/* ... */)
    

    最后只需简单地遍历 user_groups 映射并获取用户所属的所有组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-01
      • 2021-01-25
      • 1970-01-01
      • 2018-12-09
      • 2020-04-15
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      相关资源
      最近更新 更多