在应用订单之前,操作存储在Firebase文档字段中的值



在我的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

最新更新