StreamProvider
StreamProvider
- это тот же FutureProvider, но возвращающий Stream вместо Future.
StreamProvider
обычно используется для:
- прослушивания Firebase или веб-сокетов
- перестройки другого провайдера каждые N секунд
Т. к. Stream сам по себе предоставляет возможность наблюдать за изменениями,
вы можете подумать, что StreamProvider
особо и не нужен. В частности, вам может
показаться, что StreamBuilder будет также работать со Stream, но это мнение ошибочно.
Использование StreamProvider
вместо StreamBuilder имеет несколько преимуществ:
- возможность другим провайдерам слушать данный Stream с помощью ref.watch.
- гарантия того, что загрузка и ошибки будут надлежащим образом обработаны благодаря AsyncValue.
- не нужно уточнять: broadcast или не broadcast Stream.
- последнее значение Stream сохраняется, т. е. каждый добавленный слушатель может сразу получить последние актуальные данные.
- легко мокать такой Stream во время тестирования путем переопределения
StreamProvider
.