Как правильно обновить снимок запроса Firestore активного потока? - PullRequest
0 голосов
/ 16 января 2020

У меня есть приложение для флаттера, которое ищет людей в базе данных 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 использовал кеш вместо того, чтобы снова получать все документы.

1 Ответ

0 голосов
/ 16 января 2020

Firestore не поддерживает динамическое изменение параметров активного запроса. Если вы хотите изменить фильтры или порядок активного запроса, вам придется остановить первый запрос, создать новый объект Query, а затем выполнить новый запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...