首页 > 解决方案 > 两个 StreamBuilder 使用一个 stream(); 它会增加读取次数吗?

问题描述

我有两个屏幕(脚手架),我想在两个屏幕stream()中都使用一个StreamBuilder。我的问题是我会被收取双重阅读费用吗?或者读取将相当于一次读取?

标签: firebaseflutterdartgoogle-cloud-firestore

解决方案


Firestore 客户端会尽量减少必须从服务器读取的数据量。当然,这取决于您的代码,但在大多数情况下,会重复使用已经读取的数据 - 这样您就不会再次被收费。

一些例子:

  • 如果两个构建器都使用相同的流,则第二个构建器的数据将来自已为第一个读取器准备好的内存。因此,第二个建筑商将不收取任何费用。

  • 如果两个构建器都使用自己的流,通常还会有很多重用。如果流同时监听,SDK 将尽可能重用它们之间的数据。

  • 如果您启用了磁盘缓存(在 iOS 和 Android 上是默认设置),如果流没有同时处于活动状态,它们甚至会共享结果。


推荐阅读