streamGet method

Stream<List<T?>?> streamGet({
  1. Query<Object?> queryBuilder(
    1. Query<Object?> query
    )?,
  2. Query<Object?>? query,
  3. dynamic onChange(
    1. List<T?> chnagesData
    )?,
})

To stream results from your collection call streamGet with queryBuilder Stream<List

Implementation

Stream<List<T?>?> streamGet(
    {Query queryBuilder(Query query)?,
    Query? query,
    Function(List<T?> chnagesData)? onChange}) {
  Query _query = _collectionReference;
  if (queryBuilder != null) {
    _query = queryBuilder(_query);
  }
  Stream<QuerySnapshot> snapshot = _query.snapshots();
  return snapshot.map((event) {
    if (event.docChanges.isNotEmpty && !event.metadata.hasPendingWrites) {
      if (onChange != null)
        onChange(event.docChanges.map((e) => _toModel(e.doc)).toList());
    }
    return event.docs.map<T?>((doc) {
      return _toModel(doc);
    }).toList();
  });
}