Нет , вы не можете сделать это .
Глядя на страницу документации Firebase Firestore о запросах , вы узнаете о следующем:
Cloud Firestore не поддерживает следующие типы запросов:
Это не относится напрямую к вашему конкретному варианту использования, но причины, по которым ваш запрос не будет работать, аналогичны: нет индекса, который позволял бы сортировать по нескольким различным полям.
Вы могли бы, например, создавать индексы, которые сортируют каждое из полей, но запрашивают их только по отдельности. Чтобы понять, почему некоторые запросы не поддерживаются, вы можете проверить это подробное пояснительное видео от команды Firebase .
В заключение, это означает, что вам нужно будет выполнить фильтрацию на стороне клиента.
Концепция обхода во флаттере
final QuerySnapshot querySnapshot =
await Firestore.instance.collection('cakes').getDocuments();
final List<DocumentSnapshot> documents =
querySnapshot.documents.where((snapshot) => snapshot.data.containsValue('cheesecake'));
// now the [documents] object will only contain documents, which have "cheesecake" as any of their fields