第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如果它不希望返回任何內容,我應該在 https 可調用函數(shù)中返回什么

如果它不希望返回任何內容,我應該在 https 可調用函數(shù)中返回什么

寶慕林4294392 2022-12-22 12:45:26
我已經實現(xiàn)了一個 HTTPs (onCall) 函數(shù),它會向客戶端拋出一些錯誤,或者在工作成功完成時返回true 。問題是我不明白為什么要返回 true (因為當我拋出錯誤時我不返回false)。HTTP協(xié)議需要返回一個response給客戶端來完成一個請求,我應該給客戶端返回什么?我正在考慮刪除我拋出的錯誤并返回一個經典的 HTTP 響應(狀態(tài)代碼、正文……)。有任何想法嗎?這是我在做什么:exports.function = functions  .region("us-central1")  .runWith({ memory: "2GB", timeoutSeconds: 120 })  .https.onCall(async (data, context) => {        // Lazy initialization of the Admin SDK        if (!is_function_initialized) {          // ... stuff          is_uploadImage_initialized = true;        }            // ... asynchronous stuff            // When all promises has been resolved...        // If work completed successfully        return true;           /*         Is it correct instead ???         return {code: "200 OK", date: date, body: message };       */               // Else, if errors       throw new Error("Please, try again later.");           /*         Is it correct instead ???         return {code: "418 I'm a teapot", date: date, body: message };       */   }
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

文檔中所述:

要使用 HTTPS 可調用函數(shù),您必須將適用于您平臺的客戶端 SDK 與functions.https后端 API(或實施協(xié)議)一起使用

這意味著您在任何情況下都必須遵循該協(xié)議,因為客戶端 SDK 確實實現(xiàn)了該協(xié)議。

那么讓我們看看關于發(fā)送給客戶端(即調用者或消費者)的響應的協(xié)議是怎么說的:

協(xié)議規(guī)定了Response Body的格式如下:

來自客戶端端點的響應始終是一個 JSON 對象。它至少包含dataerror,以及任何可選字段。如果響應不是 JSON 對象,或者不包含數(shù)據(jù)或錯誤,則客戶端 SDK 應將請求視為失敗并顯示 Google 錯誤代碼 INTERNAL 。

error - ....

data- 函數(shù)返回的值。這可以是任何有效的 JSON 值。firebase-functions SDK 自動將用戶返回的值編碼為這種 JSON 格式??蛻舳?SDK 根據(jù)下面描述的序列化格式自動將這些參數(shù)解碼為本機類型。

如果存在其他字段,則應忽略它們。

因此,要回答您的問題“我應該向客戶端返回什么?”,您應該返回可以進行 JSON 編碼的數(shù)據(jù)。另請參閱協(xié)議文檔的這一部分


例如,如文檔中所述,在 Callable Cloud 中,您可以執(zhí)行

return {

  firstNumber: firstNumber,

  secondNumber: secondNumber,

  operator: '+',

  operationResult: firstNumber + secondNumber,

};

//Excerpt of the doc

或者,你可以做


return {result: "success"}

在您的特定情況下(“如果它不希望返回任何內容,我應該在 https 可調用函數(shù)中返回什么”)您很可能會返回以下內容,正如您在問題中提到的:


const date = new Date();

const message = "the message";


return { code: "200 OK", date: date, body: message };

但是您也可以做return true;或return null;...在某種程度上由您來決定在您的上下文中什么是有意義的。


請注意,在您返回{ code: "200 OK", date: date, body: message }值的情況下code,客戶端不會將其視為 HTTP 響應代碼,因為此 JSON 對象被注入到響應主體中。


查看完整回答
反對 回復 2022-12-22
  • 1 回答
  • 0 關注
  • 100 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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