我想为 Firebase 创建多个 Cloud Functions 并从一个项目同时部署它们。我还想将每个函数分成一个单独的文件。目前,如果我将它们都放在 index.js 中,我可以创建多个函数,例如:
exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); exports.bar = functions.database.ref('/bar').onWrite(event => { ... });
但是我想将 foo 和 bar 放在单独的文件中。我试过这个:
/functions |--index.js (blank) |--foo.js |--bar.js |--package.json
foo.js 在哪里
exports.foo = functions.database.ref('/foo').onWrite(event => { ... });
bar.js 是
exports.bar = functions.database.ref('/bar').onWrite(event => { ... });
有没有办法在不将所有函数都放入 index.js 的情况下实现这一点?
啊,Firebase 的 Cloud Functions 正常加载节点模块,所以这行得通
结构体:
/functions |--index.js |--foo.js |--bar.js |--package.json
index.js:
const functions = require('firebase-functions'); const fooModule = require('./foo'); const barModule = require('./bar'); exports.foo = functions.database.ref('/foo').onWrite(fooModule.handler); exports.bar = functions.database.ref('/bar').onWrite(barModule.handler);
foo.js:
exports.handler = (event) => { ... };
bar.js: