我如何查询子集合firestore ionic 4

时间:2019-09-07 01:01:23

标签: ionic-framework google-cloud-firestore

你好,我想查询Firestore中的子集合,我具有以下结构

"groups": {
        "g1":
        {
          "name": "Group 1",
          "users": {
              "u1": {
                          "id": "user1"
                    },
              "u2": {
                          "id": "user2"
                    }
             }
      },
     "g2":
        {
          "name": "Group 2",
          "users": {
              "u1": {
                          "id": "user1"
                    }
            }
       }

 }

"users": {
    "user1": {
                "firstName": "Lorem",
                "lastName": "Lorem"
             },

    "user2": {
                "firstName": "Lorem2",
                "lastName": "Lorem2"
             }

}

,我想查询一下,在示例中寻找user1会带给我属于该用户的组,这会给我带来g1和g2,但是如果我寻找user2的话我只会带给我g1,那么您可以在两者之间创建一个复合索引吗?组和用户?我正在用ionic 4开发它,我不知道数据是否结构合理

非常感谢您能为我提供的帮助

1 个答案:

答案 0 :(得分:0)

您可以在字段users上使用array_contains operation。所需要做的就是知道数组应包含的完整,确切的元素。如果您知道所有这些,则可以使用以下方法进行检查:

groupsRef.where("users", "array-contains", {
    u1": {
        "id": "user1"
    }
})

如果您只知道"user1",则需要一个仅包含"user1"的数组。例如:

"userids": ["user1", "user2"]

然后您可以使用以下查询:

itiesRef.where("regions", "array-contains", "user1")