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

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

firebase 功能內部服務器和最大 sta

firebase 功能內部服務器和最大 sta

米脂 2023-05-25 18:06:40
我的目標是如果用戶通過身份驗證并且輸入的長度小于 30,則從用戶那里獲取輸入并將其存儲到基礎中,然后清除輸入并關閉表單。它在后端存儲數據,但也會拋出此錯誤。這是 firebase 日志中的錯誤Unhandled error RangeError: Maximum call stack size exceeded    at Object (native)    at /srv/node_modules/lodash/lodash.js:4919:24    at baseForOwn (/srv/node_modules/lodash/lodash.js:2990:24)    at Function.mapValues (/srv/node_modules/lodash/lodash.js:13426:7)    at encode (/srv/node_modules/firebase-functions/lib/providers/https.js:184:18)    at /srv/node_modules/lodash/lodash.js:13427:38    at /srv/node_modules/lodash/lodash.js:4925:15    at baseForOwn (/srv/node_modules/lodash/lodash.js:2990:24)    at Function.mapValues (/srv/node_modules/lodash/lodash.js:13426:7)    at encode (/srv/node_modules/firebase-functions/lib/providers/https.js:184:18)完成狀態碼 500這是它在瀏覽器中顯示的錯誤Error: INTERNAL    at new g (error.ts:66)    at b (error.ts:175)    at A.<anonymous> (service.ts:263)    at tslib.es6.js:100    at Object.next (tslib.es6.js:81)    at r (tslib.es6.js:71)這是 html 的代碼:<!-- new request modal -->  <div class="new-request">    <div class="modal">      <h2>Request a Tutorial</h2>      <form method="GET" action="#">        <input type="text" name="request" placeholder="Request...">        <button type="submit">Submit Request</button>        <p class="error"></p>      </form>    </div>  </div>這是給 JS 事件監聽器的// Add a new request requestForm.addEventListener("submit",(e) => {  e.preventDefault();    const addRequest = firebase.functions().httpsCallable("addRequest");  addRequest({    text : requestForm['request'].value  }).then(() => {    requestForm.reset();    requestModal.classList.remove("open");    requestForm.querySelector(".error").textContent = "";  }).catch((err) => {    console.log(err);    requestForm.querySelector(".error").textContent = err.message;  })});
查看完整描述

1 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

可調用函數不應該只返回任何承諾。他們應該返回一個承諾,該承諾通過發送給客戶端的響應來解決。你的返回一個在數據庫操作完成時解析的承諾。請注意,add()返回一個 DocumentReference 對象。nodejs 無法序列化此對象,因為它包含自引用鏈接。您需要準確決定客戶應該收到什么。

您可以通過返回更具體的內容在短期內解決此問題:


return admin.firestore().collection("requests").add({

? ? text :data.text,

? ? upVote : 0

})

.then(() => {

? ? return { result: "OK" }

})

但最終,您將需要定義和實施客戶需要接收的內容。


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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