Я боролся с правильным способом выполнения запроса с несколькими условными запросами на основе некоторых критериев, которые могут быть или не быть добавлены.Я пробовал несколько способов, но это не работает.
Future<QuerySnapshot> searchStuff(StuffModel stuff) async {
CollectionReference col = _firestore.collection(Constants.stuffCollection);
Query query = col.where('uid', isEqualTo: stuff.uid);
if (stuff.who != null) {
query = query.where('who', isEqualTo: stuff.who);
}
if (stuff.what != null) {
query = query.where('what', isEqualTo: stuff.what);
}
if (stuff.where != null) {
query = query.where('where', isEqualTo: stuff.where);
}
if (stuff.when != null) {
query = query.where('when', isEqualTo: Timestamp.fromDate(stuff.when));
}
return await query.getDocuments();
}