У меня есть приложение для флаттера, которое ищет людей в базе данных Firestore на основе различных критериев, таких как город, страна, регион и т. Д. c. Приложение имеет критерии пользовательского ввода, которые можно выбрать, а затем применить нажатием кнопки. При нажатии кнопки вызывается следующая функция:
CollectionReference collectionReference = Firestore.instance.collection("profiles");
void getResults() {
// getQuery is a function that adds 'where' statements
// (e.g., .where("city", isEqualTo: "Paris);
Query query = getQuery(collectionReference, filters);
Stream<QuerySnapshot> snapshots = query.snapshots();
snapshots.map((docs) => docs.documents).listen((onData){
myStreamController.add(onData);
}
}
С помощью приведенного выше кода создается новый запрос, даже если существующий поток содержит все необходимые данные. Например, пользователь сначала извлекает всех людей из Франции, а затем извлекает всех людей из Парижа только путем обновления фильтра.
Поскольку в существующем потоке уже есть все люди из Парижа, возможно ли динамическое обновление запроса без создания нового потока / запроса?
Я пытаюсь добиться того, чтобы Firestore использовал кеш вместо того, чтобы снова получать все документы.