Я слушаю изменения в базе данных и использую Streambuilder для ее отображения. Все работает, когда я перехожу к виджету и когда перестраиваю виджет, но всякий раз, когда я нахожусь на виджете и обновляю документ, новые данныеотправлено, но я получаю только тот документ, который я обновил, а не весь документ в коллекции.
, скажем, у меня есть четыре документа, и обновляет второй, я вижу только эту вторую, чтобы просмотреть всеих снова мне придется отойти от экрана и обратно
вот моя функция для извлечения всех документов ==>
Stream<QuerySnapshot> fetchAllConversations(String userId) {
var firestore = Firestore.instance;
return firestore
.collection(userNode)
.document(userId)
.collection(conversationNode)
.orderBy("lastMessageDate", descending: true)
.snapshots();
}
//here is my stream builder for listening to the collection
StreamBuilder<QuerySnapshot>(
stream: convoDao.fetchAllConversations(session.currentUserId),
builder: (context, stream) {
if (stream.hasData) {
if (stream.data.documentChanges.isEmpty) {
return Container(
alignment: Alignment.center,
child: Text("No active conversations"));
}
return ListView.builder(
itemCount: stream.data.documentChanges.length,
itemBuilder: (context, index) {
return ActiveChatListItem(convo: ConvoDTO.fromJson( stream.data.documentChanges[index].document.data));
});
}
if (stream.hasError) { //todo: handle error
}
return loading();
})),
Как я могу продолжать получать весь документ в коллекции.