FutureBuilder 与 Streambuilder

FutureBuilder vs Streambuilder

大家好,我想从 Cloud firestore 中获取数据,但我不太确定在 Flutter 中使用哪个更有效。我应该使用 streambuilder 还是 futurebuilder。我有很多帖子都是红色的,但我不太明白其中的区别。谁能告诉我是否应该使用 streambuilder 或 futurebuilder 从 firestore

获取数据

StreamBuilderFutureBuilder 具有相同的行为:它们监听各自对象的变化。并在收到新值通知时触发新构建。

最终,不同之处在于他们如何聆听 async calls

FUTUREBUILDER

它只有一个响应。 flutter 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;
}   

以上,每次都会 运行,如果来自异步数据的值发生变化,即使您正在使用该应用程序,也会更新该值。它不会停止。并显示您放入特定案例中的数据。

现在给出最终答案

如果上面的内容还没有让你明白,那么,看看下面的数据:

  1. 如果您的用例只是获取数据并显示它,例如 Total number of courses from a class from API。然后你可以使用 FutureBuilder.
  2. 如果在您使用该应用程序时,数据每秒或每分钟更新一次,如 upcoming posts in a blogincrease comments on the blogincrease in likes on the blog,那该怎么办?它以一定的间隔异步更新,在这种情况下 StreamBuilder 是最佳选择。

根据用例,您决定使用哪一个。他们两个都以自己的方式很好。请阅读以下文章,以获得清晰的信息: