如何在 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()
我在 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()