Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 按时间顺序对firestore集合中的文档进行排序_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

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

Flutter 按时间顺序对firestore集合中的文档进行排序,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,是否有一种方法可以在创建文档时按时间顺序对集合中的文档进行排序?现在,他们到处都是。例如,在应用程序中,当向集合中添加新项时,它应该显示在底部,最后,而不是在中间的某个地方。p> 尝试对文档ID使用DateTime.now()。这将按时间顺序排列集合 例如: Firestore.instance.collection('Posts').document(DateTime.now().toString()).setData({}); 您需要根据文档中的某些数据定义订单,并根据该字段对查询进行排序

是否有一种方法可以在创建文档时按时间顺序对集合中的文档进行排序?现在,他们到处都是。例如,在应用程序中,当向集合中添加新项时,它应该显示在底部,最后,而不是在中间的某个地方。p> 尝试对文档ID使用
DateTime.now()
。这将按时间顺序排列集合

例如:

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

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

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

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


我还应该指出,道格·史蒂文森的答案也是一个理想的解决方案。如果你的应用程序有不同时区的用户,尤其如此,因为我的解决方案无法正确订购。
collection(...).add({
    ...,  // your other fields
    createdOn: FieldValue.serverTimestamp()
})
collection(...).orderBy('createdOn')