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,这是新的。
我正在尝试按照此处的示例在 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,这是新的。