java - Firestore 查询数据顺序
问题描述
我正在从 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 订购数据?
解决方案
有没有更好的方法从 Firestore 订购数据?
是的。除了将时间和日期存储为字符串之外,您还可以将其存储为 Java Date(日期是Firestore 支持的数据类型)或 Firestore Timestamp对象。这是一个可以帮助您实现这一目标的答案:
现在,将date
属性类型设置为 Firestore Timestamp,您的查询将可以正常工作。
但是,如果您坚持将日期和时间存储为字符串,那么您可以选择以一种可以同时按字典顺序和时间顺序排序的格式存储它们。
ISO 8601 格式如下所示:
20200802T131425
这就是我现在回答这个问题的时间。
August 02, 2020 1:14:25 PM UTC
推荐阅读
- python - 将单个列表添加到字典中,
- python - Openpyxl:如何获取特定列的值?
- python - 在 Pandas 中获取频率和运行总和、运行总和百分比?
- parsing - 如何反驳 LL(3) 的语法?
- java - 处理 4 错误:警告:gab.opencv.OpenCV 的非法反射访问
- vb.net - 尽管处于尝试块中,但抛出异常停止应用程序
- sql-server - 优化 Google Scripts 调用 - 超时问题
- python - Microsoft Teams - 机器人主程序中的无限循环
- javascript - 将变量插入 PHP 标头位置 URL
- django - Django 模板 - 将日期时间格式转换为字符串