0
如果我有1255個或更多的孩子在啓動我的節點js服務器(使用firebase-admin軟件包)時,我已經獲取了超出最大調用堆棧大小的崩潰。我正在使用'關於添加的孩子'的參考資料。最大調用堆棧大小超出崩潰 - Firebase添加子監聽器
FIREBASE WARNING: Exception was thrown by user callback. RangeError: Maximum call stack size exceeded
如果我不加limitToLast(1255)
我的孩子添加監聽器(或任何小於1255),崩潰持續出現。
我想收聽全部以前存在或添加的值無論程度如何,都不會崩潰,但我不確定如何操作。
on('value')與數據庫引用中的> 10k個節點完美協作,但最初查找所有值時不會「添加子級」。
與'關於兒童刪除'相同的問題。
這裏是我的 '孩子添加' 代碼:
messageRef.on('child_added', function(snapshot) {
var payload = {};
var msgKey = snapshot.key;
var msgName = snapshot.child('name').val();
var msgContent = snapshot.child('msg').val();
var msgTime = snapshot.child('time').val();
var message = {msg: msgContent, name: msgName, time: msgTime};
payload['messages/' + msgKey] = message;
ref.update(payload);
});
非常感謝您的幫助!
你可以分享你的'( 'child_added')'的代碼? –
我已經添加了,謝謝:) – Aretyper
不知道爲什麼你會收到錯誤,但我注意到的一件事是,當你可以調用'snapshot.val().name'時調用'snapshot.child'和避免再次調用Firebase的數據庫(除非Firebase正在優化此功能)。所以我會嘗試用'snapshot.val().name'(以及msg和time)替換你的3'snapshot.child'調用。在刪除'ref.update(有效載荷)'時,你還會遇到問題嗎? –