Firestore Query по временной шкале с флаттером - PullRequest
0 голосов
/ 14 марта 2019

Я добавляю документ в свою коллекцию следующим образом.

void addToDb() {
collectionReference.add({
  'dateTime': FieldValue.serverTimestamp(),
});}

Я пытаюсь запросить данные после определенного времени, например,

Firestore.instance
                .collection('items')
                .orderBy('dateTime', descending: true).startAt([{'dateTime' : DateTime.parse('2019-03-13 16:49:42.044')}])
                .snapshots(),

Когда я устанавливаю значение по убыванию в true, я получаю обратно все документы. Когда я устанавливаю в false, я не получаю ничего. Оба не ожидаемые результаты.

Я видел, как несколько человек в стеке говорили, что нужно конвертировать дату и время в миллисекунды или Unix. но я использую метку времени сервера, потому что я не могу доверять клиенту, чтобы написать метку времени. Любая идея, как я могу запросить диапазоны даты и времени с отметкой времени сервера?

1 Ответ

0 голосов
/ 14 марта 2019

Я не могу объяснить, почему это работает, но это работает для меня.

final startAtTimestamp = Timestamp.fromMillisecondsSinceEpoch(DateTime.parse('2019-03-13 16:49:42.044').millisecondsSinceEpoch);
Firestore.instance
                .collection('items')
                .orderBy('dateTime', descending: true).startAt([startAtTimestamp])
                .snapshots()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...