Firebase 侦听器会占用大量内存吗?



像这样的Firebase侦听器会占用巨大的堆内存吗?

ref.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot snapshot) {
}
});

至少在拍摄快照时?

Firebase 数据库客户端会在应用的内存中保留您正在侦听的所有数据的副本。删除某个位置的最后一个侦听器后,正如我们在此处已经讨论的那样,数据将从内存中删除。

当我们谈论Firebase时,一切都与听众有关,并且作为对您的问题的快速回答,不,听众不会占用大量内存,如果正确删除它们,您可以使用任意数量的听众。

使用 addListenerForSingleValueEvent() 意味着:

为此位置的数据single更改添加侦听器。

因此,无需删除侦听器。

例如,如果您使用了ref.keepSynced(true),则ref位置的所有数据都将保存在内存中并保持最新。

如果enable persistence,客户端还会将活动和最近的数据保存到磁盘。

如果该节点的数据发生变化并且互联网连接可用,则addListenerForSingleValueEvent()在调用时只会snapshot或同步一次数据。

每当节点的数据发生变化并且互联网连接可用时,addValueEventListener()将从节点拍摄快照或同步数据。

相关内容

最新更新