0
1255 명 이상의 자식이있는 경우 firebase-admin 패키지를 사용하여 노드 js 서버를 시작할 때 최대 호출 스택 크기가 초과되었습니다. 내가 '아이를 추가 할 때'라는 말을 듣고 있다는 것을 참고하십시오. 내가 추가하지 않으면 최대 호출 스택 크기를 초과했습니다. - 추가 된 수신기의 Firebase
FIREBASE WARNING: Exception was thrown by user callback. RangeError: Maximum call stack size exceeded
내 아이에게
limitToLast(1255)
은 수신기 (또는 아무것도 1,255 이하), 충돌이 발생 계속 추가.
모두 이전 값은 무시하고 크기에 상관없이 프로그램의 충돌없이 추가되지만이 방법은 확실하지 않습니다.
('값')은 데이터베이스 참조에서> 10k 노드와 완벽하게 작동하지만 처음에는 모든 값을 조회 할 때 '추가 된 자식'이 아닙니다.
'on child removed'와 (과) 동일한 문제가 발생합니다.
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') '코드를 공유 할 수 있습니다
이와 마지막 6 문을 교체? –
감사합니다. – Aretyper
오류가 발생하는 이유는 확실하지 않지만, 주목할 점은'snapshot.val() .name'을 호출 할 수있을 때'snapshot.child'를 호출하고 있다는 것입니다. Firebase 데이터베이스를 다시 호출하지 마십시오 (Firebase가이를 최적화하지 않는 한). 그래서 당신의 3 개의'snapshot.child' 호출을'snapshot.val() .name' (그리고 msg와 time)으로 대체하려고합니다. 'ref.update (payload)'를 제거 할 때 여전히 문제가 발생합니까? –