无法在多个文件中拆分Firebasefunction

我正在使用firebase函数,并且到达了数百个函数,现在很难在单个index.js文件中进行pipe理,如大量示例中所示

我试图分割多个文件中的function,如:

 --firebase.json --functions --node_modules --index.js --package.json --app --groupFunctions.js --authFunctions.js --storageFunctions.js 

在这个结构中,我将我的函数分为三类,并放入了三个文件groupFunctions.jsauthFunctions.jsstorageFunctions.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

https://github.com/malikasinger1/firebase-functions-with-typescript这是一个完整的闪存工作代码,并写入最尖端的技术,如打字稿和webpack你哥们可以使用这个作为样板/启动器

您可以将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对象,所以你可以添加新的属性,从任何你想要的。