在timestamp字段上使用Firestore查询的FutureBuilder返回快照中没有数据。但是,没有orderBy的相同查询工作得很好。
我错过了什么?谢谢你的帮助。
// Working code
future: Firestore.instance.collection('messages').where('toid',isEqualTo: _emailID).getDocuments(),
builder: (context, snapshot) ...
// Not Working - returns to if(!snapshot.hasData)
future: Firestore.instance.collection('messages').where('toid',isEqualTo: _emailID).orderBy('_timeStampUTC', descending: true).getDocuments(),
builder: (context, snapshot) ...

发布于 2018-07-20 03:04:20
我认为您在这里缺少了一个' '_timeStampUTC,所以应该是:
orderBy('_timeStampUTC', descending: true)编辑:
另外,您需要确保为toid创建索引,为_timeStampUTC创建其他索引,这是在尝试按查询位置以外的属性进行排序时完成的。
发布于 2021-09-10 11:51:36
对于那些仍然面临问题但不知道如何添加索引的人
单击“从Firebase控制台添加索引: Cloud Firestore indexes”部分:您需要添加集合id、字段和查询范围并创建索引。建立索引需要一些时间。

在字段上添加索引之后,您将获得以下启用状态的信息

发布于 2018-07-20 09:04:33
将@ServerTimestamp注释用于_timeStampUTC并尝试对orderBy查询
要使Fi还原在将数据上载到数据库时自动生成时间戳值,我们必须使用注释@ServerTimestamp并将该值设置为null。
https://stackoverflow.com/questions/51434167
复制相似问题