如何解决Firebase侦听器的读取次数是否比正常的“快照”更多?
我想知道Firebase侦听器是否比“正常”产生更多的读取,快照是从Firestore数据库获取的。我认为侦听器必须不断检查数据库,以查看其中是否有新内容,因此这将加总我应用程序的读取。
解决方法
get()
不一定比快照侦听器昂贵。 get和listen之间的区别归结为以下事实:get会精确地读取一次文档一次,而listen会至少读取一次 ,每次都会改变一次只要侦听器处于活动状态,文档就会再次读取。
仅当侦听器处于活动状态,并且文档在其处于活动状态时随时间变化时,该侦听器才会导致更多的读取记帐。
相反,您可以随着时间的推移轮询几个获取的文档,但是即使文档未更改,这些获取中的每个获取都将花费阅读文档的费用。因此,您将必须自己确定最好的方法是获取文档更新,或者甚至根本不需要更新。
,您有两种从Firestore检索数据的方法:
- 承诺
- 监听器
当您通过get()
方法使用promise时,您正在向服务器发送延迟请求。 While侦听器方法打开一个连接通道,该通道可在每次更改时实时检索信息。 (这并不意味着每次都会提出这样的请求)
使用侦听器策略访问数据时,您正在打开的通信通道当然会消耗连接资源。但是您可以unsubscribe
使用它:选中How to remove listener for DocumentSnapshot events (Google Cloud FireStore)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。