Salta al contenuto principale

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.