gpt4 book ai didi

flutter - Firestore queryBuilder中的多个where查询

转载 作者:行者123 更新时间:2023-12-03 03:55:50 27 4
gpt4 key购买 nike

我今天才注意到,每当我要查询数据库时,都会收到一个错误,这对我来说实际上没有任何意义,并且查询只会停止工作。几周前,它运行良好。

Invalid Query. All where filters with an inequality (lessThan, lessThanOrEqual, greaterThan, or greaterThanOrEqual) must be on the same field. But you have inequality filters on 'value1' and 'value2')


  Stream<List<MyModel>> myStream(
{MyFilter filter, String category}) {
return _service.collectionsStream(
path: APIPath.tools(cid, category),
queryBuilder: filter != null
? (query) => query
.where('value1', isGreaterThan: filter.minValue1)
.where('value1', isLessThan: filter.maxValue1)
.where('value2', isLessThan: filter.maxValue2)
.where('value2', isGreaterThan: filter.minValue2)
: null,
builder: (data, documentID) => MyModel.fromMap(data, documentID),
sort: (lhs, rhs) => lhs.value1.compareTo(rhs.value1));
}

难道我做错了什么?该错误是什么意思,为什么我上次没有得到它?

最佳答案

Firestore查询只能在单个字段上包含关系条件(><等)。从query limitations的文档中:

Queries with range filters on different fields are not supported.



因此,您必须选择要让Firestore在哪个字段上执行范围过滤器。然后,您必须在应用程序代码中执行其他操作。

要了解有关为何存在此限制的更多信息,并了解如何在Firestore的限制范围内实现用例,我强烈建议您查看视频系列 Getting to know Cloud Firestore

关于flutter - Firestore queryBuilder中的多个where查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61306009/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com