首页 > 解决方案 > 如何从 Firebase 获取文档查询,按时间戳排序?

问题描述

在我的应用中,用户可以将包含时间戳的文档上传到 Cloud Firestore。这些文档构成用户文档中的子集合,在应用程序中跟踪他们的日常统计数据。我希望能够使用类似collection.orderBy.

不过,理想情况下,我希望在多个不同的时间范围之间进行排序。例如,我希望能够对时间戳与 7 月 16 日匹配的所有文档进行排序。有没有办法做到这一点?谢谢你。

标签: javaandroidfirebasegoogle-cloud-firestore

解决方案


您可以使用带有时间戳字段的范围查询。您必须提供查询的起点和终点。

firestore
    .collection("your-collection")
    .whereGreaterThan("timestamp", start)
    .whereLessThan("timestamp", end)
    .orderBy("timestamp")

timestamp是您的时间戳字段的名称。 start并且end必须是 Date 或 Timestamp 对象。如果时间段只有一天,那么您将需要围绕这一天构建开始和结束。在您的具体情况下,也许 7 月 16 日午夜和 7 月 17 日午夜可能是一个很好的界限,但这取决于您。


推荐阅读