用Firestore摇动:StreamBuilder与StreamProvider

时间:2020-01-14 15:38:57

标签: firebase flutter google-cloud-firestore

我正在使用Flutter开发应用程序,并且正在使用Cloud Firestore。有没有理由在StreamBuilderStreamProvider之间选择一个?

1 个答案:

答案 0 :(得分:8)

有什么理由偏爱一个吗?

StreamBuilder非常好用,易于使用,您可以确定只需要使用相同的窗口小部件即可使用。如果您的应用程序正在增长,则通过您的应用程序小部件传递此流数据将变得混乱,在这种情况下,请使用StreamProvider。

为什么?

StreamProvider是比StreamBuilder更完整的解决方案:

  • StreamBuilder是Flutter附带的一个小部件,每次更新流时都会重新生成自身,这只是工作。
  • StreamProvider是Provider package附带的窗口小部件,它是使用StreamBuilder构建的,但是将其与InheritedWidget结合使用,使您可以有效地通过窗口小部件树传递信息。

一些有用的信息和代码

David King在this video中解释了从使用StreamBuilder到StreamProvider的演变,并解释了它们的好处(以及MultiProvider,它允许有多个流)。他的代码在this GitHub repo中。

this Fireship article中,有一段视频和代码说明了如何将Firebase与Provider一起使用。有一个非常有用的示例,将其与Firebase用户身份验证一起使用。