Я работаю над приложением Flutter и использую Firebase в качестве бэкэнда. Я также использую Firestore в качестве базы данных.
У меня проблема с тем, что я хочу отфильтровать какой-либо элемент на основе выбора пользователя. Я определил переменную filteredCategory
в моем DataService и тут же создал сеттер.
void setFilteredCategory(String category) {
filteredCategory = category;
}
Затем я вызвал этот сеттер из виджета фильтра
DataService().setFilteredCategory(category);
Но в методе where()
ничего не изменилось , Это просто проигнорировало изменение.
Stream<dynamic> get getItems {
return items
.document(uid)
.collection("items")
.where("category", isEqualTo: filteredCategory)
.snapshots()
.map(_snapshotToUserData);
}
Я также попытался установить эту переменную через некоторое время, используя метод sleep()
, и этот подход сработал, поэтому я не знаю, что здесь не так. У вас есть предложения?
Спасибо.