Firestore在Flutter上查询的位置不具有“ notEqualTo”条件

时间:2019-09-15 12:15:23

标签: firebase flutter dart google-cloud-firestore

我正在从消防商店中获取数据,我有一个订单对象,该对象的状态为可以“挂起”,“交付”,“交付”的属性。

我想做的是获取除状态为“已交付” *的订单以外的所有订单。

我该如何使用Where子句呢?

return _fs
        .collection('orders')
       // .where('status', ' ', 'delivered')
        .where('deliveryTime', isGreaterThan: startTime)
        .where('deliveryTime', isLessThan: endTime)
        .snapshots();

任何帮助将不胜感激

1 个答案:

答案 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} }子句在复合查询中[。]