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

How to query documents which contains a sent parameter in Firestore?

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

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

所以当我有一个 id 66940 时,我可以获得包含该 id 的文档和其他文档,而无需 returning 其他不包含 id 66940 的文档。


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

想法是,return 文档的 ID 中包含 66940。 我读过一个解决方案 ,但我不太了解如何实施它。

这是一个常见问题,因此我们发布了一些有关如何在 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()