【问题标题】:Firestore Query Data OrderFirestore 查询数据顺序
【发布时间】:2020-08-02 07:56:21
【问题描述】:

我正在从 Firestore 中检索数据,我想添加一个检索顺序,所以我尝试了以下代码:

 Query query = firebaseFirestore.collection("docs").orderBy("date", Query.Direction.DESCENDING/*ASCENDING*/);
    FirestoreRecyclerOptions<download> docsFirestoreRecyclerOptions = new FirestoreRecyclerOptions.Builder<download>()
            .setQuery(query, download.class)
            .build();

在日期中,我在字符串类型中添加时间和日期,例如

02:42:31 - 2020/08/01

通过这个,我想确保最新的帖子出现在回收站视图的顶部。 这一天效果很好,但如果时间的话,第二天就可以了

01:00:00 - 2020/08/02

它将出现在前一天添加的帖子之前。有没有更好的方法从 Firestore 中订购数据?

【问题讨论】:

    标签: java android firebase google-cloud-firestore


    【解决方案1】:

    有没有更好的方式从 Firestore 中订购数据?

    确实如此。除了将时间和日期存储为字符串之外,您还可以将其存储为 Java Date,日期为 Firestore supported data type 或 Firestore Timestamp 对象。这是一个可以帮助您实现这一目标的答案:

    ServerTimestamp is always null on Firebase Firestore

    现在,将 date 属性的类型设置为 Firestore 时间戳,您的查询就可以正常工作了。

    但是,如果您坚持将日期和时间存储为字符串,则您可以选择以一种可以同时按字典顺序和时间顺序排序的格式存储它们。

    ISO 8601 格式如下所示:

    20200802T131425
    

    这是我现在回答这个问题的时间。

    August 02, 2020 1:14:25 PM UTC
    

    【讨论】:

    • 是的,它解决了问题,谢谢,我会尝试检索这个时间戳而不是那个字符串日期。 ❤
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 2020-01-16
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多