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_added
callback对子快照没有任何影响,这个内部树child_added
使用内存来存储节点下的所有数据 。
因此,您应该考虑对订阅使用限制,引入分页,或者如果数据库适合您的域模型,则应该重新构build数据库。
在添加child_added
侦听器之前,请确保已caching所有数据(通过上述分页技术或其他方式)。
- PhoneGap /cordovascrollTo忽略
- 我可以在科多瓦设置不同的方向iPad和iPhone(通用)应用程序?
- 移动应用程序与Web应用程序 – 苹果不再接受Web应用程序?
- VS2013 Cordova iOS Remotebuild错误无法POST /build/tasks?command=build&vcordova=4.3.1&cfg=debug
- CFBundleDocumentType在myproject-Info.plist文件中不起作用
- cordovaiPhone X发射图像最初显示底部的白色区域
- 是否可以使用Ripple模拟器testingPhoneGap File API
- 如何在Iphone Phonegap中播放embedded式video
- ios phonegap)我应该在哪里定位自定义推送通知声音?