Cloud Firestore whereIn查询未返回指定数据文档问题咨询
错误说明
你的查询写法存在错误,核心问题有两处:
- 运算符使用错误:
whereIn的作用是匹配字段值完全等于传入数组内某一个元素的文档,你当前的写法相当于查询regions字段完全等于['west_coast', 'east_coast']这个数组的文档,自然无法匹配到仅包含["east_coast"]的DC文档。你需要查询数组字段包含指定任意值的场景,应该使用arrayContainsAny运算符。 - 参数格式错误:你给
whereIn传入的参数是嵌套数组[['west_coast', 'east_coast']],多包了一层方括号,即便使用正确的运算符,这样的参数格式也无法得到预期结果。
正确代码
collection.where('regions', arrayContainsAny: ['west_coast', 'east_coast']);
上述查询会返回所有regions数组字段中包含west_coast或者east_coast的文档,符合你的预期需求。
内容的提问来源于stack exchange,提问作者iDecode
相关产品推荐
相关产品推荐

