Из этого ответа :
Метод сборки разработан таким образом, что он должен быть чистым / без побочных эффектов.
и
Это означает, что метод сборки не должен запускать вызов http или изменять какое-либо состояние.
Но это противоречит плагину firestore пример использования (сокращенно для краткости):
class BookList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('books').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
// do something with books
},
);
}
}
В любое время, когда вызывается метод build
, также вызывается builder
функция из StreamBuilder
.
Что я пробовал:
...
stream: Firestore.instance.collection('books').snapshots().distinct(),
...
Ни один из советов из ранее упомянутого ответа не подходит для этого случая.