Database FutureBuilder vs Streambuilder

Database FutureBuilder vs Streambuilder,database,flutter,dart,google-cloud-firestore,mobile-application,Database,Flutter,Dart,Google Cloud Firestore,Mobile Application,大家好,我想从CloudFireStore中获取数据,但我不太确定哪一个更适合在Flatter中使用。我应该使用streambuilder还是futurebuilder。我有很多帖子,但我不太明白其中的区别。有谁能告诉我应该使用streambuilder还是futurebuilder从firestore获取数据这两个streambuilder和futurebuilder都有相同的行为:它们监听各自对象上的更改。并在通知他们新值时触发新生成 最终,不同之处在于它们如何侦听异步调用 FUTUREBU

大家好,我想从CloudFireStore中获取数据,但我不太确定哪一个更适合在Flatter中使用。我应该使用streambuilder还是futurebuilder。我有很多帖子,但我不太明白其中的区别。有谁能告诉我应该使用streambuilder还是futurebuilder从firestore获取数据

这两个
streambuilder
futurebuilder
都有相同的行为:它们监听各自对象上的更改。并在通知他们新值时触发新生成

最终,不同之处在于它们如何侦听
异步调用

FUTUREBUILDER

它只有一个响应。颤振
Future
的一个非常常见的用法是在
http
调用期间。使用
Future
可以监听它的状态,也就是说,在通过
Future
获取数据之后,当它完成或出现错误时

STREAMBUILDER

另一方面是
迭代器
,它可以吸收不同的值,这些值会随时间而变化。通过使用
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;
}   
如果来自异步数据的值发生更改,即使在您使用应用程序时,上述操作也将每次运行,并更新该值。它不会停止。并显示您放入特定案例中的数据

现在是最终答案

如果上述情况仍然没有清楚地影响到您,请查看以下数据:

  • 如果您的用例只是获取数据并显示它,就像API中一个类的课程总数一样。然后可以使用
    FutureBuilder
  • 如果,当您使用应用程序时,数据每秒钟或每分钟更新一次,例如
    博客中即将发布的帖子
    增加博客上的评论
    增加博客上的喜欢度
    。它以一定的间隔异步更新,在这种情况下,
    StreamBuilder
    是最好的选择
  • 根据用例,您决定使用哪一个。他们两人都有各自的优点。请按照以下文章进行操作,以获得清晰的信息:


    你能描述一下你没有得到什么吗?我不知道哪种方法可以有效地从firestore获取数据,因为我不想向firestore发出太多请求