areMoreDocumentsAvailable<T> method
Retrieves true
if there are more items and false
if there are no more items for the
specific query
. This method is mostly used for pagination purpose.
query
is a query.
lastDocumentSnapshot
is the last DocumentSnapshot
contained within the list of items.
If lastDocumentSnapshot
is null, then it checks if at least 1 document exists in the collection.
onDocumentSnapshot
is a method with return type of an object.
Implementation
Future<bool> areMoreDocumentsAvailable<T>({
required Query query,
required DocumentSnapshot lastDocumentSnapshot,
required T? Function(DocumentSnapshot documentSnapshot) onDocumentSnapshot,
}) async {
_loggingService.log('FirestoreHelper.areMoreDocumentsAvailable: Last Document ID: ${lastDocumentSnapshot.id}');
final elements = await getDocuments<T>(
query: query.limit(1),
logReference: 'FirestoreHelper.areMoreDocumentsAvailable',
onDocumentSnapshot: (documentSnapshot) => onDocumentSnapshot(documentSnapshot),
lastDocumentSnapshot: lastDocumentSnapshot,
);
if (elements == null || elements.isEmpty) {
_loggingService.log('FirestoreHelper.areMoreDocumentsAvailable: No more elements');
return false;
} else {
_loggingService.log('FirestoreHelper.areMoreDocumentsAvailable: More elements exists.');
return true;
}
}