android - 如何在 Firestore 文档中查询包含给定值的文档?
问题描述
我的 Firestore 结构如图所示
我的 Firestore 文档有很多文档,其中一个如图所示。在我的 Android 应用程序中,我想查询所有具有“3P”、“紧急”和“任务挑战”值的文档。这意味着如果一个文档有“3P”、“紧急”和“任务挑战”,那么这个文档应该是我的查询结果。如果文档只有“3P”但没有其他值(如“紧急”、“任务挑战”),那么它不应该出现在我的查询结果中。如何在 Firestore 中执行此操作。
解决方案
我认为还不能'array-contains-all'
在 Firestore 中执行类似的操作。@Doug 有一个类似案例的答案。
每个查询最多可以使用一个数组包含子句。
目前最好的方法是使用地图并使用多种whereEqualTo
方法:
db.collection("dungeon")
.whereEqualTo("textMap.3P", true)
.whereEqualTo("textMap.urgent", true)
.whereEqualTo("textMap.mission_challenge", true)
.get()
文件:
{
...otherFields,
textMap: {
"urgent": true,
...otherMapFields
}
}
推荐阅读
- ios - 如何使用 Swift 使用 UIPickerView 选择 ip?
- c# -
在 web.config 中添加最后一个 lash 到 URL - botframework - Bot Framework + Facebook Tester = 无消息
- javascript - 创建两个日期之间的日期数组
- kubernetes - Storm Kubernetes livenessProbe
- sql - Oracle 错误,在预期的地方找不到 FROM 关键字
- node.js - 将 Heroku (Node.js) 服务器迁移到 Amazon S3
- ios - 如何在编辑时更改 uitextfield leftView 图像 tintColor
- javascript - Bootstrap Foundation:在大屏幕上,网站将两个容器并排放置
- wordpress - 在 woocommerce 中使用产品 sku 作为永久链接 url