[英]Firebase .on() listener causes Cordova iOS app crash
我制作了一個空白的全新Cordova應用程序(-v 6.3.1),並為iOS構建。 該應用程序不執行以下操作:
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()
內部的WebThread (7): EXC_BAD_ACCESS (code=1, address=0xbbadbeef)
bmalloc::VMHeap::grow()
。
如果我這樣做:
var ref = new Firebase('url-to-firebase-leaf-node-with-100-children');
則該應用不會崩潰。
顯然這是一個內存問題,但是如何解決? 從4,000個子節點中提取了1.5Mb的數據,我想不到這應該會耗盡所有可用內存。 請避免提出不要提取所有數據的建議-該應用程序需要所有數據,並且可以在Android上正常運行。
本機崩潰非常具有表現力。 該應用程序內存不足。
Firebase SDK使用您的訂閱構建數據庫的內存鏡像。 即使您的child_added
回調對子快照不執行任何操作,此內部樹child_added
將內存用於節點下的所有數據 。
因此,如果適合您的域模型,則應考慮對訂閱使用限制,引入分頁甚至重組數據庫。
在添加child_added
偵聽器之前,請確保已緩存了所有數據(通過上述分頁技術或其他方式)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.