listenCollectionGroup<T extends Object<T>> method

void listenCollectionGroup<T extends Object<T>>({
  1. required Query<Map<String, dynamic>> reference,
  2. Query<Object?> query(
    1. Query<Map<String, dynamic>>
    )?,
  3. Future callback(
    1. List<T>,
    2. int,
    3. bool
    )?,
  4. Future deletionCallback(
    1. List<T>,
    2. int
    )?,
  5. Future emptyCallback(
    1. int
    )?,
})

Implementation

void listenCollectionGroup<T extends object.Object<T>>({
  required Query<Map<String, dynamic>> reference,
  Query<Object?> Function(Query<Map<String, dynamic>>)? query,
  Future Function(List<T>, int, bool)? callback,
  Future Function(List<T>, int)? deletionCallback,
  Future Function(int)? emptyCallback,
}) {
  final int? maxActivePages = query != null
      ? query(reference).getValueOf<int>(reference, maxActivePagesKey, '==')
      : null;

  final q =
      query == null ? reference : query(reference).removeLibFields(reference);

  final fq = FirestoreQuery(
    '${reference.parameters.values.map((e) => e.toString()).toList().join('_')}_${q.parameters.values.map((e) => e.toString()).toList().join('_')}',
    q,
    true,
  );

  _internalCollectionObserver<T>(
    fq,
    0,
    maxActivePages,
    callback,
    deletionCallback,
    emptyCallback,
    null,
  );
}