Firebase .on()侦听器会导致Cordova iOS应用崩溃

我做了一个空白,全新的cordova应用程序(-v 6.3.1),并为iOS构build。 该应用程序除了以下内容什么都不做

var ref = new Firebase('url-to-firebase-leaf-node-with-4000-children'); ref.on("child_added", function(child, prev) { console.log("here"); }); 

部署到iPhone。 该应用程序崩溃,Xcode引用以下内容:

WebThread (7): EXC_BAD_ACCESS (code=1, address=0xbbadbeef)bmalloc::VMHeap::grow()

如果我这样做:

var ref = new Firebase('url-to-firebase-leaf-node-with-100-children'); 那么应用程序不会崩溃。

这显然是一个记忆问题,但是如何解决呢? 从4000个子节点中抽取1.5Mb的数据,我不会想象这应该占用所有可用的内存。 请避免不提取所有数据的build议 – 应用程序需要所有的数据,并在Android上正常工作。

本地的崩溃是非常有performance力的。 应用程序内存不足。

Firebase SDK使用您的订阅构build数据库的内存镜像。 即使您的child_addedcallback对子快照没有任何影响,这个内部树child_added使用内存来存储节点下的所有数据

因此,您应该考虑对订阅使用限制,引入分页,或者如果数据库适合您的域模型,则应该重新构build数据库。

在添加child_added侦听器之前,请确保已caching所有数据(通过上述分页技术或其他方式)。