1 回答

TA貢獻1784條經驗 獲得超7個贊
如文檔中所述:
要使用 HTTPS 可調用函數(shù),您必須將適用于您平臺的客戶端 SDK 與
functions.https
后端 API(或實施協(xié)議)一起使用
這意味著您在任何情況下都必須遵循該協(xié)議,因為客戶端 SDK 確實實現(xiàn)了該協(xié)議。
那么讓我們看看關于發(fā)送給客戶端(即調用者或消費者)的響應的協(xié)議是怎么說的:
協(xié)議規(guī)定了Response Body的格式如下:
來自客戶端端點的響應始終是一個 JSON 對象。它至少包含
data
或error
,以及任何可選字段。如果響應不是 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 對象被注入到響應主體中。
添加回答
舉報