1 回答
TA贡献1784条经验 获得超7个赞
如文档中所述:
要使用 HTTPS 可调用函数,您必须将适用于您平台的客户端 SDK 与
functions.https后端 API(或实施协议)一起使用
这意味着您在任何情况下都必须遵循该协议,因为客户端 SDK 确实实现了该协议。
那么让我们看看关于发送给客户端(即调用者或消费者)的响应的协议是怎么说的:
协议规定了Response Body的格式如下:
来自客户端端点的响应始终是一个 JSON 对象。它至少包含
data或error,以及任何可选字段。如果响应不是 JSON 对象,或者不包含数据或错误,则客户端 SDK 应将请求视为失败并显示 Google 错误代码 INTERNAL 。
error- ....
data- 函数返回的值。这可以是任何有效的 JSON 值。firebase-functions SDK 自动将用户返回的值编码为这种 JSON 格式。客户端 SDK 根据下面描述的序列化格式自动将这些参数解码为本机类型。如果存在其他字段,则应忽略它们。
因此,要回答您的问题“我应该向客户端返回什么?”,您应该返回可以进行 JSON 编码的数据。另请参阅协议文档的这一部分。
例如,如文档中所述,在 Callable Cloud 中,您可以执行
return {
firstNumber: firstNumber,
secondNumber: secondNumber,
operator: '+',
operationResult: firstNumber + secondNumber,
};
//Excerpt of the doc
或者,你可以做
return {result: "success"}
在您的特定情况下(“如果它不希望返回任何内容,我应该在 https 可调用函数中返回什么”)您很可能会返回以下内容,正如您在问题中提到的:
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 对象被注入到响应主体中。
添加回答
举报
