Reputation: 172
I'm trying to fetch a certain number of document for viewing it in a limit view table, for example 50 elements at the time, whenever the user clicks next it loads the next 50 element form the Firestore and shows it in the table, in order to reduce the data loaded from the firebase and not to slow down the application, since there may be millions of documents stored in the Firestore, I've tried this solution but is it the best practice? Thanks.
vehiclesCollection.snapshots().skip(10).take(10).map(
(event) {
print('some logic');
},
);
Upvotes: 0
Views: 463
Reputation: 1619
According to the Firebase docs and FlutterFire docs batching is possible!
It looks like this:
FirebaseFirestore.instance
.collection('users')
.limit(50)
.get()
.then(...);
In order to make it a working pagination you could add startAfterDocument to your query and give as parameter for each request the last element from the previously returned collection:
FirebaseFirestore.instance
.collection('users')
.limit(50)
.startAfterDocument(lastDocument)
.get()
.then(...);
Upvotes: 2