为了账号安全,请及时绑定邮箱和手机立即绑定

firebase函数未处理的错误RangeError:超出最大调用堆栈大小

firebase函数未处理的错误RangeError:超出最大调用堆栈大小

繁花如伊 2023-08-24 10:34:18
我已经被这个错误困扰了一段时间,但仍然无法找出根源。我正在从客户端(javascript)调用 firebase 函数,但 firebase 函数端抛出最大调用堆栈错误。这是我的代码exports.signInCart = functions.https.onCall(async (data, context) => {    console.log(data)    const sessionID = data.sessionID         console.log("session id ", sessionID)         const shopIntentRef = admin.database().ref('/shopIntent/'+ sessionID)    try{        shopIntentRef.once("value", (snapshot)=> {            if(!snapshot.val()){                console.log("not recognized ")                                return "NA"            }            if(snapshot.val()){                 admin.database().ref('/shopintent/'+ sessionID+'/').update(data);                return (snapshot.val());                        }         });    }catch(ex){         console.log('ex /updateCoords = '+ex);    }   return shopIntentRef.once("value")})我尝试了几种不同的方法;我认为我应该能够在没有最后一个 return 语句的情况下获得一些值,并且我确实得到了返回状态代码 200 但没有返回 snapshot.val() 。当我添加最后一个 return 语句时,它开始在 firebase 函数控制台中生成此错误Unhandled error RangeError: Maximum call stack size exceededat Object (<anonymous>)at /workspace/node_modules/lodash/lodash.js:1198:19at baseKeys (/workspace/node_modules/lodash/lodash.js:3484:16)at keys (/workspace/node_modules/lodash/lodash.js:13333:60)at /workspace/node_modules/lodash/lodash.js:4920:21at baseForOwn (/workspace/node_modules/lodash/lodash.js:2990:24)at Function.mapValues (/workspace/node_modules/lodash/lodash.js:13426:7)at encode (/workspace/node_modules/firebase-functions/lib/providers/https.js:184:18)at /workspace/node_modules/lodash/lodash.js:13427:38at /workspace/node_modules/lodash/lodash.js:4925:15 下午 5:41:07.909我该如何解决上述错误?
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您正在尝试将 DataSnapshot 对象返回给调用者。不幸的是,该对象中有循环引用,并且不能简单地序列化。您需要从中获取一个纯 JavaScript 对象并返回它。


return shopIntentRef.once("value").then(snapshot => {

    return snapshot.val()

})

此外,您需要花一些时间来正确处理代码中早期的承诺,否则它可能不会按您期望的方式工作。您的代码应该只返回一个只有在所有其他异步工作完成后才能解决的承诺。


查看完整回答
反对 回复 2023-08-24
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信