是否可以從 Firebase 谷歌云功能回傳這樣的快照?
exports.getFreshData = functions.https.onCall(async (data, context) => {
const ref = data.ref;
try {
const snap = await admin.database().ref(ref).once("value");
return {res: true, snapshot: snap};
} catch (e) {
error(e);
return false;
}
});
當我從客戶端呼叫此函式時,出現以下錯誤:
Unhandled error RangeError: Maximum call stack size exceeded
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
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)
但是,如果我回傳snap.val(),它運行得很好。我希望能夠回傳快照。可能嗎?
uj5u.com熱心網友回復:
Callable Cloud Functions 只能回傳 JSON 型別,如有關回傳值的檔案中所述:
要將資料發送回客戶端,請回傳可以 JSON 編碼的資料。
ADatabaseSnapshot不是 JSON 型別,而是更復雜的 JavaScript 物件。您通常希望回傳快照的值,或者它的鍵和它的值:
return { res: true, key: snap.key, value: snap.val() };
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/498228.html
