如何在Firestore中对字符串字段执行多值匹配查询
原写法错误原因
你当前写的两个isEqualTo链式调用是与逻辑,要求文档的status字段同时等于COMPLETE和INCOMPLETE,不存在满足该条件的文档,因此无法返回正确结果。
正确实现方案
Firestore提供了whereIn操作符,专门用于匹配字段值属于指定列表范围内的文档,你可以直接用这个方法实现需求,正确代码如下:
FirebaseFirestore.instance.collection('tasks') .where('status', whereIn: ['COMPLETE', 'INCOMPLETE']);
注意事项
whereIn操作符最多支持传入10个匹配值,你的场景只有2个匹配值,完全符合使用限制- 如果该查询还需要搭配其他字段的过滤条件,执行时如果触发缺失复合索引的报错,按照报错提示的指引创建对应索引即可正常使用。
内容的提问来源于stack exchange,提问作者Brandon Pillay
相关产品推荐
相关产品推荐

