streamGet method
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();
});
}