按时间顺序对Firestore集合中的文档进行排序

时间:2020-03-24 13:58:14

标签: flutter dart google-cloud-firestore

是否有一种方法可以在创建文档时按时间顺序对其进行排序?目前,他们到处都是。例如,在“待办事项”应用程序中,当您将新项目添加到集合时,它应显示在底部,最后而不是中间。

2 个答案:

答案 0 :(得分:2)

您将需要根据文档中的某些数据定义顺序,并根据该字段对查询进行排序。

时基顺序的典型解决方案,以确保您的文档都包含一个时间戳字段,您可以使用该字段对它们进行排序。调用add()(或其他更新数据的方法)时,可以使用FieldValue.serverTimestamp()告诉Firestore使用当前时间:

collection(...).add({
    ...,  // your other fields
    createdOn: FieldValue.serverTimestamp()
})

然后,在使用orderBy()查询时,您可以使用该字段进行排序:

collection(...).orderBy('createdOn')

答案 1 :(得分:0)

尝试使用DateTime.now()作为文档ID。这应该按时间顺序排列集合。

例如:

Firestore.instance.collection('Posts').document(DateTime.now().toString()).setData({});