getQuery method
Query<Map<String, Object?> >
getQuery(
- List<
String> fields, { - List<
QueryFilter> ? filters, - DocumentSnapshot<
Map< ? startAfter,String, dynamic> > - int? limit,
Implementation
Query<Map<String, Object?>> getQuery(List<String> fields,
{List<QueryFilter>? filters, DocumentSnapshot<Map<String, dynamic>>? startAfter, int? limit}) {
if (fields.contains(null)) throw FirestoreNullArgumentException();
if (fields.length % 2 == 0) throw FirestoreArgumentException();
Query<Map<String, Object?>> query = firestore.collection(fields.join('/'));
if (filters != null) {
for (var filter in filters)
query = query.where(
filter.field,
isEqualTo: filter.isEqualTo,
isLessThan: filter.isLessThan,
isLessThanOrEqualTo: filter.isLessThanOrEqualTo,
isGreaterThan: filter.isGreaterThan,
isGreaterThanOrEqualTo: filter.isGreaterThanOrEqualTo,
arrayContains: filter.arrayContains,
arrayContainsAny: filter.arrayContainsAny,
whereIn: filter.whereIn,
isNull: filter.isNull,
);
}
if (startAfter != null) query = query.startAfterDocument(startAfter);
if (limit != null) query = query.limit(limit);
return limitQuery(query, startAfter: startAfter, limit: limit);
}