Манипулировать значением, хранящимся в поле документа Firebase, перед применением заказа - PullRequest
0 голосов
/ 29 марта 2020

В моем Firebase Firestore у меня есть большое количество документов в коллекции, каждый из которых имеет поле с именем bookTime, в котором хранится дата в формате String. Формат dd MM yyyy HH, поэтому мы не можем отсортировать его в порядке убывания, чтобы получить значимый список с последним документом сверху. Формат, который нам нужен для правильной работы: yyyy MM dd HH. Это мой запрос:

mQuery = mQuery.orderBy("bookTime", Query.Direction.DESCENDING);

Какое изменение я должен сделать, чтобы я мог получить список с документом с самым новым bookTime сверху?

1 Ответ

2 голосов
/ 29 марта 2020

Какое изменение я должен сделать, чтобы я мог получить список с документом с самым новым bookTime сверху?

Прежде всего, не используйте строки для хранения дат. Рекомендуется использовать Date объектов. Date - это поддерживаемый Firestore тип данных .

Для получения дополнительной информации о том, как сохранить дату, см. Мой ответ из следующего поста:

Как только вы правильно сохраните дату, этот запрос будет отлично работать.


Однако, если вы настаивайте на том, чтобы хранить даты и время в виде строк, у вас есть возможность сохранить их в формате, который можно одновременно сортировать в лексикографическом и хронологическом формате.

Формат ISO 8601 выглядит следующим образом:

20200329T184525

Именно сейчас я отвечаю на этот вопрос.

March 29, 2020 6:45:25 PM UTC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...