我已经被这个错误困扰了一段时间,但仍然无法找出根源。我正在从客户端(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 exceeded
at Object (<anonymous>)
at /workspace/node_modules/lodash/lodash.js:1198:19
at 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:21
at 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:38
at /workspace/node_modules/lodash/lodash.js:4925:15
下午 5:41:07.909
我该如何解决上述错误?
陪伴而非守候
相关分类