如何与提供者混合流?

时间:2019-10-05 11:00:50

标签: flutter dart flutter-provider

我正在使用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中?

感谢帮助!

0 个答案:

没有答案