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