如何在本地通过 Firebase Cloud Functions 运行 Express API?
How to run an Express API via Firebase Cloud Functions locally?
我有一个使用 Express 的标准 REST API,通过 Firebase 云函数公开。
const api = express()
api.get('/test', (req, res) => res.status(403).json({ "REASON": "UNAUTHORIZED" }))
exports.api = functions.https.onRequest(api)
远程
当我部署它并通过 Postman 发送 GET https://<remote>/api/test
时,我得到了预期的 403 { "REASON": "UNAUTHORIZED" }
。
本地
当我 运行 firebase emulators:start --only functions
在本地提供这些功能并对其进行测试时,我确实在我的终端中看到了 functions: HTTP trigger initialized at http://localhost:5001/.../api
,但是当我通过 Postman 发送 GET http://localhost:5001/.../api/test
时,我得到 200 Not Found
。
我错过了什么吗?
这确实是 Firebase CLI 的一个缺陷,它似乎在最新版本 (7.13.1) 中得到了修复
安装最新版本使用:npm install -g firebase-tools@latest
Note: it did require me to update to compatible version of firebase-functions
and firebase-admin
as well.
我有一个使用 Express 的标准 REST API,通过 Firebase 云函数公开。
const api = express()
api.get('/test', (req, res) => res.status(403).json({ "REASON": "UNAUTHORIZED" }))
exports.api = functions.https.onRequest(api)
远程
当我部署它并通过 Postman 发送 GET https://<remote>/api/test
时,我得到了预期的 403 { "REASON": "UNAUTHORIZED" }
。
本地
当我 运行 firebase emulators:start --only functions
在本地提供这些功能并对其进行测试时,我确实在我的终端中看到了 functions: HTTP trigger initialized at http://localhost:5001/.../api
,但是当我通过 Postman 发送 GET http://localhost:5001/.../api/test
时,我得到 200 Not Found
。
我错过了什么吗?
这确实是 Firebase CLI 的一个缺陷,它似乎在最新版本 (7.13.1) 中得到了修复
安装最新版本使用:npm install -g firebase-tools@latest
Note: it did require me to update to compatible version of
firebase-functions
andfirebase-admin
as well.