亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 199 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號