在我的Firebase Firestore中,我在一个集合中有大量文档,每个文档都有一个名为bookTime
的字段,该字段以字符串格式存储日期。格式是dd MM yyyy HH
,所以我们不能按降序对其进行排序,以获得一个顶部有最新文档的有意义的列表。它正常工作所需的格式是yyyy MM dd HH
。这是我的问题:
mQuery = mQuery.orderBy("bookTime", Query.Direction.DESCENDING);
我应该做什么更改,这样我才能真正得到一个顶部有最新bookTime
的文档的列表?
我应该做什么更改,这样我才能真正获得一个列表,其中文档顶部有最新的bookTime?
首先,不要使用字符串来存储日期。建议使用Date对象。Date
是Firestore支持的数据类型。
有关如何存储日期的更多信息,请参阅我在以下帖子中的回答:
- ServerTimestamp在Firebase Firestore上始终为null
正确存储日期后,该查询将完全正常工作。
但是,如果您坚持将日期和时间存储为字符串,那么您可以选择以可以同时按字典和时间排序的格式存储它们。
ISO 8601格式如下:
20200329T184525
这是我目前回答这个问题的时间。
March 29, 2020 6:45:25 PM UTC