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

Posted

技术标签:

【中文标题】firebase node.js/express.js 添加多个firebase函数【英文标题】:firebase node.js/express.js add multiple firebase functions 【发布时间】:2018-11-23 16:53:58 【问题描述】:

我正在尝试在 index.ts 文件中添加多个 firebase 函数,下面的示例如下:How do I structure Cloud Functions for Firebase to deploy multiple functions from multiple files?。

特别是,我有一个 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 的函数 ...

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于firebase node.js/express.js 添加多个firebase函数的主要内容,如果未能解决你的问题,请参考以下文章

Node.js + Express.js |尝试设置 HTTPS 服务器

Node.js Express框架 详细总结

Node.js - 在 Server.js 上执行 Node 命令(Express + React + Webpack)

Node.js, Express的服务器搭建过程的问题

Node.js + Express + Redis,何时关闭连接?

Node.js Express 框架