我有一个firestore集合,其中每个文档都有一个字符串“标签”的集合,我想对firestore集合进行查询,并获取在标签数组中出现字符串的所有结果。
类似的东西:
var { docs } = await admin
.firestore()
.collection('submissions')
.where((x)=> x.tags.contains('mytag'))
.get();
有可能吗?
答案 0 :(得分:2)
您不能(但)查询数组包含特定值的项目。请参见Firestore documentation on working with arrays, lists, and sets,该指南建议您改为将标签建模为:
bean
然后使用以下命令进行查询:
tags: {
mytag: true,
myothertag: true
}
我还建议您阅读我对Firebase query if child of child contains a value的回答,其中包含另一个示例。对于Firebase实时数据库,此处使用相同的逻辑。
正在完成一些工作,以允许您在查询数组中的值。但还是像往常一样:没有保证何时发布,所以请注意release notes上的Firestore更新。