我正在使用 firebase 函数并达到数百个函数,现在很难在单个 index.js
文件中管理它,如他们的许多示例所示
我试图将该函数拆分为多个文件,例如:
--firebase.json
--functions
--node_modules
--index.js
--package.json
--app
--groupFunctions.js
--authFunctions.js
--storageFunctions.js
在这个结构中,我将我的函数分为三类,并放入这三个文件 groupFunctions.js
、authFunctions.js
和 storageFunctions.js
。然后我尝试在 index.js
中导入这些文件,但我不知道为什么它不适合我。
这里是 groupFunctions.js
var functions = require('firebase-functions');
module.exports = function(){
exports.onGroupCreate = functions.database.ref('/groups/{groupId}')
.onWrite(event => {
console.log(`A group is created in database named:${event.params.groupId}.`);
// some logic...
//...
})
}
这里是 index.js
文件:
var functions = require('firebase-functions');
module.exports = require("./app/groupFunctions")();
我的编辑器在这段代码中没有给出任何警告。但是当我使用 firebase deploy --only functions
部署此代码时,它不会部署功能。如果 Firebase 控制台上已存在某些功能,则会在部署时删除所有功能。
问题也被问到 github
最佳答案
工作代码示例:
文件结构:
--firebase.json
--functions
--node_modules
--index.js
--package.json
--src
--groupFunctions.js
--authFunctions.js
--storageFunctions.js
index.js
文件:
require('./src/groupFunctions.js')(exports);
require('./src/authFunctions.js')(exports);
require('./src/storageFunctions.js')(exports);
groupFunctions.js
文件:
var functions = require('firebase-functions');
module.exports = function (e) {
e.onGroupCreate = functions.database.ref('/groups/{groupId}')
.onWrite(event => {
console.log(`A group is created in database named:${event.params.groupId}.`);
// some logic...
//...
})
}
更新:现在我有更好的解决方案
完整的工作代码位于 https://github.com/malikasinger1/firebase-functions-with-typescript它是用 typescript 和 webpack 等尖端技术编写的。您可以将其用作样板/启动器。
关于javascript - 无法在多个文件中拆分 Firebase 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44432378/