gpt4 book ai didi

database - FutureBuilder 与 Streambuilder

转载 作者:行者123 更新时间:2023-12-03 04:42:15 25 4
gpt4 key购买 nike

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

最佳答案

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

最终,区别在于他们如何收听异步调用

future build 者

它只有一个响应。 flutter Future 的一个非常常见的用法是在 http 调用期间。你可以用 Future 做的是听它的状态,也就是说,当它完成时或在通过 Future

完成获取数据后出现错误

流水线 build 者

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. 如果您的用例只是获取数据并显示它,例如 API 类中的类(class)总数。然后就可以使用FutureBuilder了。
  2. 如果在您使用该应用程序时数据每秒或每分钟更新一次,例如博客中即将发布的帖子增加博客上的评论博客上的点赞数增加。它以一定的间隔异步更新,在这种情况下,StreamBuilder 是最佳选择。

根据用例,您决定使用哪一个。他们两个都以自己的方式很好。按照以下文章进行操作,以获得清晰度:

关于database - FutureBuilder 与 Streambuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62995229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com