如何在Firestore中查询包含已发送参数的文档?

时间:2017-10-11 12:01:13

标签: android firebase google-cloud-firestore

我在Android中使用新的Cloud Firestore。 所以我在firestore中遇到了这个问题。 我想查询一个文档,其中包含数组字段中的id。

例如,我有一个文件,在firestore中包含一个整数数组,如下所示: image1

因此,当我有一个id 66940时,我可以获取包含id的文档和其他文档,而不返回其他不包含id 66940的文档。

除了这种方法,我还可以使用id(66940)在文档id中搜索它。我的文件ID格式是这样的:
- 66940_88123
- 12323_66940

这个想法是,返回其ID中包含66940的文档。 我已经阅读了解决方案here,但我并不了解如何实施它。

1 个答案:

答案 0 :(得分:7)

这是一个常见问题,因此我们发布了一些有关如何在Cloud Firestore中使用数组的文档: https://firebase.google.com/docs/firestore/solutions/arrays

简而言之,如果您想查询数组成员资格,最好将数据存储为布尔图。

所以不要这样:

{
  name: "sam",
  userGgIds: [12345, 67890]
}

你想要这个:

{
  name: "sam",
  userGgIds: {
    12345: true,
    67890: true
  }
}

然后,您可以执行此查询以搜索包含ID“12345”

的文档
db.collection("users").where("userGgIds.12345", "==", true).get()