我正在使用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
中?
感谢帮助!