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