В настоящее время я пробую использовать потоковые провайдеры, чтобы замечать изменения в базе данных Cloud Firestore и получать новые данные при изменении.
Вот как я создал потокового провайдера: Поскольку я не могу вызвать поставщика из initstate .... Следовательно, я вызываю внутри build:
_projectListSnapshotFromStream = Provider.of<QuerySnapshot>(context);
У меня есть сомнения, что если я перестрою виджет, содержащий вышеуказанный вызов, в его сборке будет ли он взимать с меня плату за чтение каждый раз, когда я создаю этот виджет, потому что я позвонил поставщику? Или он будет взимать плату только за чтение, когда в базе данных замечено изменение?
Определение потока:
Stream<QuerySnapshot> getProjectsFromStream(String username){
return databaseReference.collection("Projects").where("Members",arrayContains: username).snapshots();
}
Заранее спасибо за ответ.