streamListFromTo method
Stream<List<T> >
streamListFromTo(
- String field,
- DateTime from,
- DateTime to, {
- List<
QueryArgsV2> args = const [],
Returns the list of documents from from
date to to
date matched by field
from collection
as a stream so that changes can be listened and is ordered by the field
provided.
additional args
can be supplied to perform specific query.
Implementation
Stream<List<T>> streamListFromTo(String field, DateTime from, DateTime to,
{List<QueryArgsV2> args = const []}) {
var ref = _db.collection(collection).orderBy(field, descending: true);
for (final arg in args) {
ref = ref.where(
arg.key,
isEqualTo: arg.isEqualTo,
isNotEqualTo: arg.isNotEqualTo,
isGreaterThan: arg.isGreaterThan,
isGreaterThanOrEqualTo: arg.isGreaterThanOrEqualTo,
isLessThan: arg.isLessThan,
isLessThanOrEqualTo: arg.isLessThanOrEqualTo,
isNull: arg.isNull,
arrayContains: arg.arrayContains,
arrayContainsAny: arg.arrayContainsAny,
whereIn: arg.whereIn,
whereNotIn: arg.whereNotIn,
);
}
var query = ref.startAfter([to]).endAt([from]).snapshots();
return query.map(
(snap) => snap.docs.map((doc) => fromDS(doc.id, doc.data())).toList());
}