我正在使用Firebase和Geofire处理应用。在当前位置运行Geo查询时,假设我在OnKeyEntered覆盖方法中收到10个密钥。这些密钥中的每一个本质上都是Firebase中的用户节点。我需要在查询区域中听取每个用户的任何数据更改,以便我可以实时在地图上显示更新。
目前,我为每个输入的密钥添加了一个ValueEventListener,但我不确定是否同时启动这么多的监听器是个好主意。查询区域中的用户可能超过50个。这意味着我可以有50个开放的侦听器!
有更好的方法吗?我试图找出一个firebase查询来仅过滤地理查询键但是不成功。
任何帮助都会很棒!
答案 0 :(得分:4)
听众的计算成本并不高,除非你有一个会被频繁触发的,因为它正在收听的数据经常发生变化。
在实际观察需要优化代码之前,不要陷入优化代码的陷阱。当您发现性能不佳时,就是进行优化的时候了。如果你需要一群听众来完成你的工作,那就去做吧。只要知道你的实际上限是什么,并确保测试问题的上限。