StreamProvider не обновляется
Я работаю на странице чата, как разговор. И я могу получать данные с потоком из firebase. Когда я открываю страницу в первый раз, все данные приходят, но если новые данные добавлены в firebase, мой пользовательский интерфейс не обновляется. А также, когда я возвращаюсь назад и нажимаю еще раз, чтобы перейти на страницу разговора, приходят новые данные.
моя функция модели представления
Stream<List<Message?>> getSingleConversation(conversationId) async* {
String? userId = await _authRepository.getCurrentUserId();
if (userId != null) {
yield* _conversationRepository.getSingleConversation(
conversationId, userId);
}
}
мой провайдерский маршрут
MaterialPageRoute(
builder: (context) => MultiProvider(
providers: [
StreamProvider<List<Message?>>.value(
value: _conversationViewModel.getSingleConversation(chat!.id),
updateShouldNotify: (_, __) => true,
initialData: [],
),
ChangeNotifierProvider.value(value: ConversationViewModel()),
],
child: ConversationPage(
chat: chat,
conversationId: chat.id,
),
),
)
и пользовательский интерфейс
List<Message?> viewModelProvider = Provider.of<List<Message?>>(context);
Widget _buildMessagesList(List<Message?> viewModelProvider) {
return ListView(
children: viewModelProvider.map((e) {
return _buildMessageCard(e!);
}).toList());
}