【发布时间】:2020-07-05 00:53:33
【问题描述】:
有没有办法在创建时按时间顺序对集合中的文档进行排序?目前,它们无处不在。例如,在 To-Do 应用程序中,当您将新项目添加到集合时,它应该显示在底部,最后,而不是中间的某个位置。
【问题讨论】:
标签: flutter dart google-cloud-firestore
有没有办法在创建时按时间顺序对集合中的文档进行排序?目前,它们无处不在。例如,在 To-Do 应用程序中,当您将新项目添加到集合时,它应该显示在底部,最后,而不是中间的某个位置。
【问题讨论】:
标签: flutter dart google-cloud-firestore
您需要根据文档中的一些数据定义一个顺序,并根据该字段对查询进行排序。
基于时间排序的典型解决方案是确保您的文档都包含一个时间戳字段,您可以使用该字段对它们进行排序。当您调用add()(或其他方法更新数据)时,您可以使用FieldValue.serverTimestamp() 告诉Firestore 使用当前时间:
collection(...).add({
..., // your other fields
createdOn: FieldValue.serverTimestamp()
})
然后你可以在使用orderBy()查询时使用该字段进行排序:
collection(...).orderBy('createdOn')
【讨论】:
尝试使用 DateTime.now() 作为文档 ID。这应该按时间顺序排列集合。
例如:
Firestore.instance.collection('Posts').document(DateTime.now().toString()).setData({});
【讨论】: