【发布时间】:2021-03-12 12:36:55
【问题描述】:
我正在编写一个 Firebase 云函数,以便在 HTTP 触发时连接到外部数据库。
此函数将执行以下操作:
- 用户提交帐号和邮政编码
- 云功能被触发
- 帐号被附加到请求中的 URL,外部数据库返回帐号和邮政编码。
我需要将响应正文返回给客户端。
var functions = require('firebase-functions');
var request = require('request');
exports.account_verification = functions.https.onCall((data, context) => {
console.log("Data: " + data.text);
console.log("Context: " + context)
var options = {
'method': 'GET',
'url': '**REDACTED**' + JSON.parse(data.text).customerno,
'headers': {
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log("RESPONSE BODY: ", JSON.parse(response.body).firebase_accounts);
console.log("Data Submitted: ", data.text);
console.log("Account Submitted: ", JSON.parse(data.text).customerno);
console.log("Zip Submitted: ", JSON.parse(data.text).zipcode);
//data returned from external database
//Example: firebase_accounts:[{"customerno" : "Example Customer", "zipcode" : "Example Zip Code"}]
var response_returned = JSON.parse(response.body).firebase_accounts;
console.log("Data Returned -- Parsed: ", response_returned);
//Example: [{"customerno" : "Example Customer", "zipcode": "Example Zip Code"}]
//Response Body available here but will not return to client
});
//Return to client will work here but cannot access response data
});
【问题讨论】:
-
您分享的代码有什么问题?当您在 Cloud Functions 或 emulator 中运行它时,哪一行不符合您的预期?
-
我在云功能中运行它,暂时不是云模拟器。我正在尝试以 JSON 格式将“返回的响应”返回给客户端。 //从外部数据库返回的数据 var response_returned = JSON.parse(response.body).firebase_accounts; console.log("返回的数据 -- 已解析:", response_returned); }); //return 在这里有效,但响应体无法返回 });
-
请编辑您的问题以包含附加信息,以便您可以使用格式化工具使其更具可读性。
-
Frank,感谢您抽出宝贵时间查看我的帖子;我已经编辑了这个问题,希望能为手头的问题带来更多的澄清。最好的问候,-Arcade336
标签: node.js json request google-cloud-functions