如何在本地通过 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.