在 firebase 函数中编写响应操作的问题
Issues writing response actions in firebase functions
我在 index.js 中有一个函数,我正在尝试从 API 的响应中解析帐户 ID。原回复如下:
{
"data": {
"user": null,
"account": {
"id": 865,
"email": "mitch@gmail.com",
"plan_identifier": "dnsimple-business",
"created_at": "2018-06-24T00:55:29Z",
"updated_at": "2018-06-24T00:56:49Z"
}
}
}
我的代码如下:
exports.dnsCheckAuthorization = functions.https.onRequest((req, res) => {
cors(req, res, () => {
dnsimple.identity.whoami().then((response) => {
return res.status(200).send(response.data.account.id);
}).catch(error => (
res.status(500).send(error)
))
});
});
最后,我在 PostMan 中收到的错误如下:
Error: could not handle the request
并且 Firebase 日志中的错误如下:
Function execution took 519 ms, finished with status: 'response error'
我几乎已经尝试了所有我能想到的方法来获得这个函数 returned 的 ID,但就是无法弄清楚。我错过了什么?
更新
我用下面的代码得到了它。虽然不是我想要的。我只想 return 帐户 ID。
exports.dnsCheckAuthorization = functions.https.onRequest((req, res) => {
cors(req, res, () => {
dnsimple.identity.whoami().then((response) => {
var accountID = response.data.account.id;
console.log('account id is', accountID);
return res.status(200).json({id: accountID});
}).catch(error => (
res.status(500).send(error)
))
});
});
res.send()
是一个 express only 函数。因此,如果您没有使用 express 创建服务器,它可能无法工作。相反,您可以使用这样的尝试 -
res.status(200).end(response.data.account.id)
我在 index.js 中有一个函数,我正在尝试从 API 的响应中解析帐户 ID。原回复如下:
{
"data": {
"user": null,
"account": {
"id": 865,
"email": "mitch@gmail.com",
"plan_identifier": "dnsimple-business",
"created_at": "2018-06-24T00:55:29Z",
"updated_at": "2018-06-24T00:56:49Z"
}
}
}
我的代码如下:
exports.dnsCheckAuthorization = functions.https.onRequest((req, res) => {
cors(req, res, () => {
dnsimple.identity.whoami().then((response) => {
return res.status(200).send(response.data.account.id);
}).catch(error => (
res.status(500).send(error)
))
});
});
最后,我在 PostMan 中收到的错误如下:
Error: could not handle the request
并且 Firebase 日志中的错误如下:
Function execution took 519 ms, finished with status: 'response error'
我几乎已经尝试了所有我能想到的方法来获得这个函数 returned 的 ID,但就是无法弄清楚。我错过了什么?
更新
我用下面的代码得到了它。虽然不是我想要的。我只想 return 帐户 ID。
exports.dnsCheckAuthorization = functions.https.onRequest((req, res) => {
cors(req, res, () => {
dnsimple.identity.whoami().then((response) => {
var accountID = response.data.account.id;
console.log('account id is', accountID);
return res.status(200).json({id: accountID});
}).catch(error => (
res.status(500).send(error)
))
});
});
res.send()
是一个 express only 函数。因此,如果您没有使用 express 创建服务器,它可能无法工作。相反,您可以使用这样的尝试 -
res.status(200).end(response.data.account.id)