FireStore-在单个字段上进行多个isEqualTo / ==查询

时间:2020-10-07 23:04:53

标签: firebase google-cloud-firestore

我知道我们允许每个查询在一个字段上使用一个不等式过滤器。但是,我的问题是,是否可以在同一字段上多次使用iEqualTo查询?

我的意思的例子:

var price = 100
query.whereField"price", isEqualTo: price-1) - 99
query.whereField"price", isEqualTo: price-2) - 98
query.whereField"price", isEqualTo: price-3) - 97

这是否会返回价格字段在99-97之间的所有项目?还是只解释该字段的最终/最后查询,以便仅返回价格为97的地方?我已经使用了一个配额的范围/不相等过滤器,所以目前这可能是一个可行的解决方案。

我有一个很大的数据集,我需要查询多个字段,我可以在客户端执行此操作,但是,我试图限制尽可能多的数据,以便于读取。

谢谢。

1 个答案:

答案 0 :(得分:1)

有两种方法可以完成您想要的事情:

  1. 使用range queryref.where("price", ">=", 97).where("price", "M=", 99)

  2. 使用in queryref.where("price", "in", [97, 98, 99])

有关这两者的更多信息,请参阅queries上的Firebase文档。