firebase node.js/express.js 添加多个 firebase 函数

firebase node.js/express.js add multiple firebase functions

我正在尝试按照此处的示例在 index.ts 文件中添加多个 firebase 函数:.

特别是,我有一个 express.js 服务器,我在 routes.ts:

中初始化了它
const server = express();
server.get('/api', (req, res) => res.send('hello /api'))
export {server}

现在在 index.ts 中,我可以导入 routes.ts 并附加一个用户身份验证侦听器,以便在创建新用户时触发,即:

import {server} from './routers'

exports.app = functions.https.onRequest(server);
exports.userEvents = functions.auth.user().onCreate(user => {
    console.log("user created: ", user.email, user)
})

然而,据我所知,只有 exports.app 实际上按预期工作,而 exports.userEvents 似乎没有在创建新用户时触发。

============================================= ============

编辑:

问题是我的 firebase.json 函数是如何设置的,它目前仅服务于 app/api/** 开头的端点,即:

{
  "hosting": {
    "public": "public",

    // the problem is here: you're not connecting to multiple functions
    "rewrites": [{
        "source": "/api/**"
      , "function": "app"  



      }],
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

现在的问题是如何让 firebase 提供来自exports.userEvents ...

的功能

问题是我试图在本地环境中模拟功能。我必须将它们用于非 http 函数部署到 运行。但是,文档底部描述的其他功能有一个本地模拟器:https://firebase.google.com/docs/functions/beta-v1-diff,这是新的。