Firebase侦听器的读取次数是否比正常的“快照”更多?

时间:2020-08-10 17:26:08

标签: firebase google-cloud-firestore

我想知道Firebase侦听器是否比“正常”产生更多的读取,快照是从Firestore数据库获取的。我认为侦听器必须不断检查数据库,以查看其中是否有新内容,因此这将加总我应用程序的读取。

2 个答案:

答案 0 :(得分:1)

get()不一定比快照侦听器昂贵。 get和listen之间的区别归结为以下事实:get会精确地读取一次文档一次,而listen会至少读取一次 ,每次都会改变一次只要侦听器处于活动状态,文档就会再次读取。

仅当侦听器处于活动状态,并且文档在其处于活动状态时随时间变化时,该侦听器才会导致更多的读取记帐。

相反,您可以随着时间的推移轮询几个获取的文档,但是即使文档未更改,这些获取中的每个获取都将花费阅读文档的费用。因此,您将必须自己确定最好的方法是获取文档更新,或者甚至根本不需要更新。

答案 1 :(得分:0)

您有两种从Firestore检索数据的方法:

  • 承诺
  • 监听器

当您通过get()方法使用promise时,您正在向服务器发送延迟请求。 While侦听器方法打开一个连接通道,该通道可在每次更改时实时检索信息。 (这并不意味着每次都会提出这样的请求)

使用侦听器策略访问数据时,您正在打开的通信通道当然会消耗连接资源。但是您可以unsubscribe使用它:选中How to remove listener for DocumentSnapshot events (Google Cloud FireStore)