【发布时间】:2019-06-26 16:12:15
【问题描述】:
我正在监听数据库中的更改并使用 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();
})),
我怎样才能继续获取集合中的整个文档。
【问题讨论】:
标签: firebase dart flutter google-cloud-firestore