Обходного пути для этого больше нет, поскольку Cloud Firestore удалил эту функцию, т.е. вы не можете больше использовать orderBy(FieldPath.documentID())
.
В настоящее время вы не можете использовать DocumentSnapshot
в качестве параметра.
Однако вы можете просто использовать конкретное значение .В этом примере это будет номер population
из документа lastVisible
:
final db = Firestore.instance;
db.collection('cities').orderBy('population').limit(25).getDocuments().then((querySnapshot) {
final lastVisible = snapshot.documents.last;
// Construct a new query starting at the last document, get the next 25 cities.
final next = db.collection('cities').orderBy('population')
.startAfter([lastVisible.data['population']]).limit(25);
});
Если у вас есть поля с одинаковыми значениями, вы можете упорядочить по идентификаторам документов, используя следующую логику:
.orderBy(...).orderBy('__name__').startAfter([..., lastVisible.documentId])