最好是有一个整个对象的观察者还是它的几个子对象



假设简单的字符模型,如

character: {
gold: 1000,
health: 100,
mana: 50
}

客户将订阅Firebase以侦听goldhealthmana的变化。在数据使用量/Firebase 定价/性能方面,建议采用哪种方式执行此操作?

我应该订阅character更改还是每个值有 3 个订阅者?

如果你的所有数据(金币、生命值、魔法值(都以同样的方式不断变化,那么你可以订阅角色节点的变化。如果这三个中只有一个不断变化,那么您可以只在每个特定的子项上添加一个侦听器。在这种情况下,如果只有一个值不断变化,则无需下载整个对象。

即使您使用一个或三个侦听器,也不要忘记根据活动生命周期删除侦听器,如下所示:

databaseReference.removeEventListener(valueEventListener);

当然,正如弗兰克建议的那样,做一些测试来测量带宽。

希望对您有所帮助。

最新更新