Flutter Firestore查询按日期和字符串同时不返回?



我使用where查询过滤日期和字符串值。

var _inShop = FirebaseFirestore.instance.collection('assignment')
.where('status', isEqualTo: 'Out Of Service')
.where('arrive', isGreaterThan: Timestamp.fromDate(DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day)))
.snapshots().map((event) => event.docs.length);

分别使用它们就可以了。

var _inShop0 = FirebaseFirestore.instance.collection('assignment')
.where('status', isEqualTo: 'Out Of Service')
.snapshots().map((event) => event.docs.length);
var _inShop1 = FirebaseFirestore.instance.collection('assignment')
.where('arrive', isGreaterThan: Timestamp.fromDate(DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day)))
.snapshots().map((event) => event.docs.length);

但是将它们组合在一起,它不显示数据

错误处理程序抛出[cloud_firestore/failed-precondition] The query requires an index. You can create it here:,并且有一个链接。

firestore查询不允许查询日期和字符串?

问题是您必须为这个查询定义一个index,以便在Firestore中执行。

记录整个捕获的异常,你会在异常中看到一个链接,在浏览器中打开它,它会导航到谷歌云控制台的页面,在那里你可以点击创建创建所需的索引,之后你应该等待索引被创建,然后再次运行查询,你会看到一切都很好。

要了解有关Firestore索引的更多信息,请点击此链接。

相关内容

  • 没有找到相关文章

最新更新