Ana içeriğe atla

StreamProvider

StreamProvider, FutureProvider'a benzer, ancak [Futures] yerine Streams için uygulanır.

StreamProvider genellikle şu amaçlarla kullanılır:

  • Firebase veya web-socket'leri dinlemek.
  • Her birkaç saniyede bir başka bir provider'ı yeniden oluşturmak.

Streams güncellemeleri dinlemek için doğal bir yol sunduğundan, bazıları bir StreamProvider kullanmanın pek bir değeri olmadığını düşünebilir. Aslında, Flutter'ın StreamBuilder'larının bir Stream dinlerken aynı şekilde çalışacağını düşünebilir, ancak bu bir hatadır.

StreamBuilder yerine bir StreamProvider kullanmanın birçok faydası vardır:

  • diğer provider'ların ref.watch kullanarak akışı dinlemesine olanak tanır.
  • AsyncValue sayesinde yükleme ve hata durumlarının doğru şekilde ele alınmasını sağlar.
  • aktarım akışları (broadcast streams) ile normal akışları ayırt etme ihtiyacını ortadan kaldırır.
  • akış tarafından yayılan son değeri önbelleğe alır, bu da bir olay yayıldıktan sonra bir dinleyici eklenirse, dinleyicinin hala en güncel olaya anında erişimini garanti eder.
  • StreamProvider'ı geçersiz kılarak akışı testler sırasında kolayca simüle etmenizi sağlar.