断言失败:第 677 行第 11 行:'field == orders[0][0]'

Failed assertion: line 677 pos 11: 'field == orders[0][0]'

我不知道为什么在使用两个“where”时无法从 flutter 访问数据。有什么可以帮我解决这个问题吗?我想要的是在一段时间内获取所有文件 错误

The initial orderBy() field '[[FieldPath([dateEnd]), false]][0][0]' has to be the same as the where() field parameter 'FieldPath([date])' when an inequality operator is invoked.
'package:cloud_firestore/src/query.dart':
package:cloud_firestore/src/query.dart:1
Failed assertion: line 677 pos 11: 'field == orders[0][0]'

我的代码

FirebaseFirestore.instance.collection(widget.collectionDbName)
            .where('dateEnd', isGreaterThanOrEqualTo: DateTime.now())
            .orderBy('dateEnd')
            .where('date', isLessThanOrEqualTo: DateTime.now())
            .orderBy('date', descending: widget.sortingOrderDesc)
            .snapshots(),

您为两个 where 子句使用了两个不同的字段,并且使用了无效的 <= & >= 范围。
根据 Firebase documentation 您只能在单个字段上执行范围(<、<=、>、>=)或不等于 (!=) 比较。
有效示例:

const q1 = query(citiesRef, where("state", ">=", "CA"), where("state", "<=", "IN"));
const q2 = query(citiesRef, where("state", "==", "CA"), where("population", ">", 1000000));