当前位置:  开发笔记 > 编程语言 > 正文

nodejs firebase error RangeError:超出最大调用堆栈大小失败

如何解决《nodejsfirebaseerrorRangeError:超出最大调用堆栈大小失败》经验,为你挑选了1个好方法。



1> Frank van Pu..:

您正在更新您正在阅读的同一节点.这会导致on("value"再次触发回调.然后依次写入一个新值,再次触发回调.并且一直持续到运行时用尽调用堆栈空间.

最简单的解决方案是使用once()而不是on():

   var ref = database.ref('users');
    try{
        ref.orderByChild('username').equalTo(usrID).once("value", (snapshot)=> {
            if(!snapshot.val()){
                checker = true;
            }

            if(snapshot.val()){
                admin.database().ref('users/' + usrID + '/currentLocation').update({
                    lat: usrCoords.lat,
                    long: usrCoords.long
                });
                return res.json({msg: 'user coords changed', success: true});
            //  checker = false;
            }


            // res.json({msg: 'username is not in D.B', success: false});

        });
    }catch(ex){
         console.log('ex /updateCoords = '+ex);
    }

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有