StreamProvider
StreamProvider
è simile a FutureProvider ma finalizzato per gli Streams
invece che per i Futures.
StreamProvider
è solitamente usato per:
- stare in ascolto di Firebase o web-sockets
- ricostruire un altro provider ogni pochi secondi
Dato che gli Streams espongono naturalmente un modo per stare in ascolto degli aggiornamenti,
alcuni potrebbero pensare che l'utilizzo di StreamProvider
abbia poco valore.
In particolare, potresti credere che StreamBuilder di Flutter funzioni altrettanto bene per ascoltare uno Stream, ma questo è un errore
Usare StreamProvider
al posto di StreamBuilder ha numerosi vantaggi:
- permette ad altri provider di stare in ascolto dello stream usando ref.watch.
- assicura una corretta gestione dei casi di caricamento/errore, grazie ad AsyncValue.
- rimuove la necessità di differenziare gli streams di trasmissione (broadcast streams) con gli stream normali.
- memorizza l'ultimo valore emesso dallo stream, assicurandosi che se un listener viene aggiunto dopo l'emissione di un evento, il listener avrà comunque accesso immediato all'evento più recente/aggiornato.
- facilita la finzione dello stream durante i test sovrascrivendo lo
StreamProvider
.