我正在从消防商店中获取数据,我有一个订单对象,该对象的状态为可以“挂起”,“交付”,“交付”的属性。
我想做的是获取除状态为“已交付” *的订单以外的所有订单。
我该如何使用Where子句呢?
return _fs
.collection('orders')
// .where('status', ' ', 'delivered')
.where('deliveryTime', isGreaterThan: startTime)
.where('deliveryTime', isLessThan: endTime)
.snapshots();
任何帮助将不胜感激
答案 0 :(得分:1)
您可以查看"Query limitations" section in the querying article:
Cloud Firestore不支持以下类型的查询:
- 带有
!=
子句的查询。在这种情况下,您应该将查询分为大于查询和小于查询。例如,尽管不支持查询子句where("age", "!=", "30")
,但您可以通过组合两个查询来获得相同的结果集,一个查询与子句where("age", "<", "30")
,另一个与子句where("age", ">", 30)
。
return _fs
.collection('orders')
.where('status', isGreaterThan: 'delivered')
.where('status', isLessThan: 'delivered')
.snapshots();
如您所见,我删除了deliveryTime
上的范围过滤器,因为它不可能在explained here的多个字段上执行范围过滤器:
您只能在单个字段上执行范围比较(
<
,<=
,>
,>=
),并且最多可以包含一个{{1} }子句在复合查询中[。]