无法在多个文件中拆分Firebasefunction
我正在使用firebase函数,并且到达了数百个函数,现在很难在单个index.js
文件中进行pipe理,如大量示例中所示
我试图分割多个文件中的function,如:
--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
,它不部署function。 如果Firebase控制台上已经存在某些function,则会删除部署中的所有function。
这里是部署日志:
问题也在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... //... }) }
更新:现在我有连击解决scheme
您可以将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... //... }) }
现在,在index.js
:
var functions = require('firebase-functions'); require("./app/groupFunctions")(module.exports);
它的工作方式是modules.exports
是一个普通的JavaScript对象,所以你可以添加新的属性,从任何你想要的。