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(有效载荷)'时,你还会遇到问题吗? –