У меня есть метод для возврата некоторых данных из FireStore, который используется для разбивки на страницы в моем приложении Flutter.
static Future<QuerySnapshot> getAllItems({int count: 12, dynamic lastKey}) {
if (lastKey != null) {
return Firestore.instance
.collection('uploads')
.where('active', isEqualTo: true)
.where('purge', isEqualTo: false)
.startAfter([lastKey])
.orderBy("active_time", descending: true)
.where('active_time', isLessThanOrEqualTo: DateTime.now())
.limit(count)
.getDocuments();
} else {
return Firestore.instance
.collection('uploads')
.where('active', isEqualTo: true)
.where('purge', isEqualTo: false)
.orderBy("active_time", descending: true)
.where('active_time', isLessThanOrEqualTo: DateTime.now())
.limit(count)
.getDocuments();
}
}
Когда значение lastKey не передается, все работает нормально.Но когда я передаю строковое значение lastKey, я получаю следующую ошибку:
cursor position is outside the range of the original query
Поле active_time
является типом TimeStamp в FireStore.Индекс создан для того же.