我想知道Firebase侦听器是否比“正常”产生更多的读取,快照是从Firestore数据库获取的。我认为侦听器必须不断检查数据库,以查看其中是否有新内容,因此这将加总我应用程序的读取。
答案 0 :(得分:1)
get()
不一定比快照侦听器昂贵。 get和listen之间的区别归结为以下事实:get会精确地读取一次文档一次,而listen会至少读取一次 ,每次都会改变一次只要侦听器处于活动状态,文档就会再次读取。
仅当侦听器处于活动状态,并且文档在其处于活动状态时随时间变化时,该侦听器才会导致更多的读取记帐。
相反,您可以随着时间的推移轮询几个获取的文档,但是即使文档未更改,这些获取中的每个获取都将花费阅读文档的费用。因此,您将必须自己确定最好的方法是获取文档更新,或者甚至根本不需要更新。
答案 1 :(得分:0)
您有两种从Firestore检索数据的方法:
当您通过get()
方法使用promise时,您正在向服务器发送延迟请求。 While侦听器方法打开一个连接通道,该通道可在每次更改时实时检索信息。 (这并不意味着每次都会提出这样的请求)
使用侦听器策略访问数据时,您正在打开的通信通道当然会消耗连接资源。但是您可以unsubscribe
使用它:选中How to remove listener for DocumentSnapshot events (Google Cloud FireStore)