getListFromTo method

Future<List<T>> getListFromTo(
  1. String field,
  2. DateTime from,
  3. DateTime to, {
  4. List<QueryArgsV2> args = const [],
})

Returns the list of documents from from date to to date matched by field is ordered by the field provided. additional args can be supplied to perform specific query.

Implementation

Future<List<T>> getListFromTo(String field, DateTime from, DateTime to,
    {List<QueryArgsV2> args = const []}) async {
  var ref = _db.collection(collection).orderBy(field);
  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,
    );
  }
  QuerySnapshot query = await ref.startAt([from]).endAt([to]).get();
  return query.docs
      .map((doc) => fromDS(doc.id, doc.data() as Map<String, dynamic>))
      .toList();
}