首页 > 解决方案 > 如何将流与提供者混合?

问题描述

我正在使用Provider。我想将不同的数据源与stream.

用例:聊天应用程序,其中一些消息来自系统(日期/错误消息),但其他消息来自数据库(Firestore)。

例如,仅从我现在使用的数据库中获取消息StreamBuilder

StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection('message').snapshots(),
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {


    return new ListView.builder(
    itemCount: snapshot.data.documents.length,
    itemBuilder: (context, index) {
    return messageBuilder(snapshot.data.documents[index], xa);
    });

StreamBuilder不能混合来自其他来源的数据。messages[index]我想为不同的消息类型注入消息。

可能的解决方案是创建单独的消息列表并输入ListView.builder

 return new ListView.builder(

    itemCount: messages.length,
    itemBuilder: (context, index) {
    final message = messages[index];
    return messageBuilder(message, xa);
    });

但是我如何Provider将来自 Firestore 的流和系统消息混合到messages列表中呢?

我如何将数据源整合到一起final List messages

感谢帮助!

标签: flutterdartflutter-provider

解决方案


推荐阅读