微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在具有多个条件多个where子句的flutter cloud firestore中查询?

如何解决如何在具有多个条件多个where子句的flutter cloud firestore中查询?

 widget.filteredRef= FirebaseFirestore.instance
      .collection('users')
      .doc(widget.uid)
      .collection('incomes')
      .where('date',isGreaterThanorEqualTo:            startTimeStamp,isLessthanorEqualTo: endTimeStamp)
      .where('amount',isGreaterThanorEqualTo: amountFrom,isLessthanorEqualTo: amountTo)
      .snapshots();

       

嗨,我是新手。我想指定一个查询,以从特定日期范围和用户数量中检索收入数据,作为颤动云Firestore中的列表。例如,日期从01/01/2020到01/02/2020的金额为0到1000。但是使用两个where子句或两个ord​​erby或一个orderby和一个where子句不起作用。请告诉我流的方式。

这是我的消防局收入文件链接https://drive.google.com/file/d/1lAbF1t641nBK4hRn5zLT-4eNUQ-FyajW/view?usp=sharing

解决方法

您将需要在Firebase控制台本身中创建一个索引。这是因为firebase基本上存储文档的长数组,并且执行类似以下操作:Query = CorrectIndex[start:end],如果不对数据进行排序则无法执行。它为文档的每个项目都创建了这样的索引,但没有任何组合(对于您可能不需要的东西而言,这将是昂贵的)。因此,您需要告诉Firebase它需要为要使用的每个组合创建正确排序的索引,这样在您开始查询时它可以很快。如果我没记错的话,在您的错误消息中,已经提供了指向Firebase控制台的链接。单击该按钮,系统将指导您完成该过程。

但是,这不是完全正确的。您将需要重新制作该索引以使用“ CollectionGroup”。其他一切都可以保持不变。无论如何,关于firebase的一些不错的系列是这样的:https://www.youtube.com/watch?v=Ofux_4c94FI

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。