areMoreElementsAvailable<T> method

Future<bool> areMoreElementsAvailable<T>({
  1. required Query<Object?> query,
  2. required DocumentSnapshot<Object?> lastDocumentSnapshot,
  3. required T onDocumentSnapshot(
    1. DocumentSnapshot<Object?> documentSnapshot
    ),
})

Implementation

Future<bool> areMoreElementsAvailable<T>({
  required Query query,
  required DocumentSnapshot lastDocumentSnapshot,
  required T Function(DocumentSnapshot documentSnapshot) onDocumentSnapshot,
}) async {
  _loggingService.log('FirestoreGenericService.areMoreElementsAvailable: Last Document ID: ${lastDocumentSnapshot.id}');

  final List<T>? elements = await getElements<T>(
    query: query..limit(1),
    logReference: 'FirestoreGenericService.areMoreElementsAvailable',
    onDocumentSnapshot: (documentSnapshot) => onDocumentSnapshot(documentSnapshot),
    lastDocumentSnapshot: lastDocumentSnapshot,
  );

  if (elements == null || elements.isEmpty) {
    _loggingService.log('FirestoreGenericService.areMoreElementsAvailable: No more elements');
    return false;
  } else {
    _loggingService.log('FirestoreGenericService.areMoreElementsAvailable: More elements exists.');
    return true;
  }
}