У меня есть ниже запрос Firebase, чтобы получить значения после заданного ключа, для нумерации страниц.
Firestore.instance
.collection('uploads')
.where('active', isEqualTo: true)
.where('purge', isEqualTo: false)
.where('active_time', isLessThan: Timestamp.now())
.startAfter([lastKey])
.orderBy("active_time", descending: true)
.limit(count)
.getDocuments();
Я хочу заменить этот запрос другим подходом .. Вместо использования startAfter()
Я хочуиспользуйте условие where
для достижения того же эффекта.
Firestore.instance
.collection('uploads')
.where('active', isEqualTo: true)
.where('purge', isEqualTo: false)
.where('active_time', isLessThan: lastKey)
.orderBy("active_time", descending: true)
.limit(count)
.getDocuments();
Но я получаю 0 записей, хотя у меня больше записей.
Почему я пытаюсь это сделать?
Если я использую метод startAfter (), я получаю cursor position is outside the range of the original query
ошибку.Я не мог найти решение этой проблемы.Поэтому я хочу попробовать другой подход, так как active_time
- это поле метки времени, я хочу получить следующий набор старых записей на основе последнего полученного значения метки времени.
Я хотел бы устранить исключениеили используйте альтернативный подход для возврата данных.
PS: Это код дротика / флаттера.