Фильтрация по дате с учетом Google Firestore Swift - PullRequest
0 голосов
/ 19 декабря 2018

В настоящее время я загружаю информацию в Google Firestore и буду загружать информацию с указанием даты, указанной пользователем.Например, перед загрузкой пользователь выбирает дату через UIDatePicker().Который выводит дату в формате: Jan 19, 2018.

Теперь, когда пользователь загружает документ, поле в базе данных имеет значение date, которое заполнит Jan 19, 2018.

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

Моя конечная цель - создать представление коллекции, в котором будет просто список всех дат, начиная с самых последних.

Я не могу сделать это в зависимости от того, когда пользователь загружает данные, поскольку пользователь может загрузить информацию за предыдущий день.Пользователь также может загрузить что-либо в базу данных за тот же день, и в этом случае дата будет приходить два раза подряд.

Каким будет самый эффективный способ?

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

Любое руководство было бы здорово!

Спасибо,

1 Ответ

0 голосов
/ 19 декабря 2018

Ну, вы не можете применить запрос, используя дату, то есть 19 января 2018. Единственное, что полезно для вашего случая, это сохранить отметку времени в FireStore .Вы можете легко преобразовать дату в метку времени, используя следующий код:

extension UIDate {
      var millisecondsSince1970:Int {
          return Int((self.timeIntervalSince1970 * 1000.0).rounded())
      }
}

Date().millisecondsSince1970 // 1476889390939

Затем вы можете применить FireStore следующий запрос, чтобы получить записи на основе отметки времени

databaseRef.order(by: "timeStamp", descending: true)
...