Я использую 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
List?
Как собрать источник данных в final List messages
?
Спасибо за помощь!