onData property

  1. @override
Future<void> Function(List<T>? value, User? user) get onData
override

Handles data updates from the Firestore stream.

Updates the local state when new data arrives from Firestore. If user is null, clears the local state.

Implementation

@override
Future<void> Function(List<T>? value, User? user) get onData {
  return (value, user) async {
    final docs = value ?? [];
    if (user != null) {
      log.debug('Updating docs for user ${user.uid}');
      docsPerIdInformer.update(
        docs.toIdMap((element) => element.id),
      );
      _isReady.completeIfNotComplete();
      log.debug('Updated ${docs.length} docs');
    } else {
      log.debug('User is null, clearing docs');
      docsPerIdInformer.update(
        {},
      );
    }
  };
}