Aller au contenu principal

StreamProvider

Le StreamProvider est similaire au FutureProvider mais pour les Stream au lieu des Future.

StreamProvider est généralement utilisé pour :

  • écouter de Firebase ou de web-sockets
  • reconstruire un autre provider toutes les quelques secondes

Puisque les Stream exposent naturellement un moyen d'écouter les mises à jour, certains peuvent penser que l'utilisation de StreamProvider a une faible valeur. En particulier, vous pouvez penser que que le StreamBuilder de Flutter fonctionnerait tout aussi bien pour écouter un Stream. mais c'est une erreur.

Utiliser StreamProvider plutôt que StreamBuilder présente de nombreux avantages :

  • il permet aux autres providers d'écouter le stream en utilisant ref.watch.
  • il garantit que les cas de chargement et d'erreur sont correctement gérés, grâce à AsyncValue.
  • il n'est plus nécessaire de différencier les streams de diffusion des streams normaux.
  • il met en cache la dernière valeur émise par le stream, ce qui garantit que si un écouteur est ajouté après l'émission d'un événement, l'écouteur aura toujours un accès immédiat à l'événement le plus récent.
  • il permet de facilement simuler le stream pendant les tests en surchargeant le StreamProvider.