我在Android中使用新的Cloud Firestore。 所以我在firestore中遇到了这个问题。 我想查询一个文档,其中包含数组字段中的id。
例如,我有一个文件,在firestore中包含一个整数数组,如下所示:
因此,当我有一个id 66940时,我可以获取包含id的文档和其他文档,而不返回其他不包含id 66940的文档。
除了这种方法,我还可以使用id(66940)在文档id中搜索它。我的文件ID格式是这样的:
- 66940_88123
- 12323_66940
这个想法是,返回其ID中包含66940的文档。 我已经阅读了解决方案here,但我并不了解如何实施它。
答案 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()