大家好,我想从Cloud Firestore提取数据,但是我不太确定哪种方法在flutter中更有效。我应该使用streambuilder还是futurebuilder。我有很多帖子,但我不太了解这些区别。有人可以告诉我是否应该使用streambuilder或futurebuilder从Firestore获取数据
答案 0 :(得分:2)
StreamBuilder
和FutureBuilder
的行为相同:它们监听各自对象上的更改。并在收到新值通知时触发新的构建。
最终,区别在于他们收听async calls
的方式。
FUTUREBUILDER
它只有一个回应。抖动Future
的一种非常常见的用法是在http
调用期间。您可以使用Future
来监听它的状态,即通过Future
STREAMBUILDER
另一方面, Stream
是Iterators
,它可以吸收不同的值,这些值会随着时间而变化。通过使用Stream
,您将获取每个新值,以及是否有错误或是否显示成功消息
代表:
switch (snapshot.connectionState){
case ConnectionState.none: //do something
break;
case ConnectionState.waiting: //do something
break;
case ConnectionState.active: //do something
break;
case ConnectionState.done: //do somethin
break;
}
以上内容将每次运行,并且即使来自异步数据的值发生变化(即使您使用的是应用程序)也会更新该值。它并没有停止。并显示您放入特定案例中的数据。
现在最后的答案
如果上述内容仍然无法使您印象深刻,那么请查看以下数据:
Total number of courses from a class from API
。然后,您可以使用FutureBuilder
。upcoming posts in a blog
或increase comments on the blog
或increase in likes on the blog
。它以一定的时间间隔异步更新,在这种情况下,StreamBuilder
是最佳选择。根据用例,决定要使用哪个。他们两个都有自己的方式。请按照以下文章进行说明: