微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter:从 Firestore 流式传输时,仅在首次接收后接收新文档

如何解决Flutter:从 Firestore 流式传输时,仅在首次接收后接收新文档

我正在使用 firstore 在我的应用程序中构建一个群聊。我目前正在使用 Stream 来读取消息。据我所知(这是我的第一个 Flutter 应用程序)群聊集合中的每个新文档都会触发对来自每个活动客户端的每个文档的读取。有没有办法在第一次加载时获取每个文档,然后从那时起只获取新发布的文档?我的目标是为客户端找到最佳性能,并从数据库中读取最少。

这是我用来流式传输集合的代码

//DatabaseService class

Stream streamGroupchat(Event event){
  return groupChats.doc(event.groupChatEnabledID).collection("messages")
      .orderBy('timeStamp',descending: false)
      .limit(50)
      .snapshots();
}

我听的代码

 return StreamBuilder<QuerySnapshot>(
  stream: DatabaseService().streamGroupchat(event),builder: (context,snapshot){
    if(snapshot.hasError){
      return Text("Something went wrong");
    }

    if(snapshot.connectionState == ConnectionState.waiting){
      return Loading();
    }

    // Data available

    return Scaffold(
      body: Column(
        children: [
          Expanded(
            flex: 2,// Where I start using the data
            child: ListView.builder(
              itemCount: snapshot.data.docs.length,itemBuilder: (context,index){
                Message message = Message.fromMap(snapshot.data.docs[index].data());
                return MessageView(message: message,);
              },),]
    );

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。