我正在尝试在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
...
答案 0 :(得分:0)
问题在于我试图模拟本地环境中的功能。我必须部署它们才能运行非http
函数。但是,文档底部描述的其他函数有一个本地模拟器:https://firebase.google.com/docs/functions/beta-v1-diff,这是新的。