У меня проблема с моим StreamBuilder. В этом случае у меня есть TabBarView с 3 StreamBuilders (код этого поста с одной из трех вкладок). Когда что-то удаляется из БД, сборщик показывает неверные данные. Иногда предмет все еще там, иногда он удваивается. Я попытался удалить два оператора orderBy из запроса. Я горячо перезагрузил и данные были правильными. После добавления утверждений и горячей перезагрузки все было хорошо.
Почему это происходит? Это из-за заявлений orderBy?
Спасибо!
StreamBuilder(
stream: Firestore.instance
.collection("bookings")
.document(localUser.centerName)
.collection("center_bookings")
.where("customerId", isEqualTo: localUser.userId)
.orderBy("bookedMonth", descending: false)
.orderBy("bookedDay", descending: false)
.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError) {
return Text("Error: ${snapshot.error}");
}
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return Center(
child: CircularProgressIndicator(
backgroundColor: Theme.of(context).primaryColor,
),
);
default:
return Container(
margin: const EdgeInsets.symmetric(
horizontal: 5.0, vertical: 10.0),
child: ListView(
children: snapshot.data.documents.map((document) {
if (_datesNext7Days.contains(document["bookedFor"])) {
return Padding(...);
} else {
return SizedBox();
}
}).toList()),
);
}
},
),