no se pueden dividir las funciones de Firebase en varios files

Estoy trabajando con funciones de Firebase y llegué a cientos de funciones, y ahora es muy difícil administrarlo en un solo file index.js como se muestra en sus muchos ejemplos

Traté de dividir esas funciones en varios files como:

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

En esta estructura, authFunctions.js mis funciones en tres categorías y coloco los tres files groupFunctions.js , authFunctions.js y storageFunctions.js . Luego traté de importar estos files en index.js , pero no sé por qué no funciona para mí.

Aquí está 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... //... }) } 

Aquí está el file index.js :

 var functions = require('firebase-functions'); module.exports = require("./app/groupFunctions")(); 

Mi editor no da ninguna advertencia en este código. Pero cuando despliego este código con firebase deploy --only functions , no despliega la function. Si ya existen algunas funciones en la console de Firebase, eliminan todas las funciones en la implementación.

aquí están los loggings de implementación: enter image description here

la pregunta también se hace en github

Ejemplo de código de trabajo:

estructura de files:

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

file index.js :

 require('./src/groupFunctions.js')(exports); require('./src/authFunctions.js')(exports); require('./src/storageFunctions.js')(exports); 

file 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... //... }) } 

ACTUALIZACIÓN: ahora tengo solución de mezcla

https://github.com/malikasinger1/firebase-functions-with-typescript Este es un código de trabajo flash completo y está escrito con tecnología de vanguardia como typescript y package web. Tus amigos pueden usar esto como un boilerplate / starter

Puede pasar el object de exports a la function en groupFunctions.js , así:

 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... //... }) } 

Ahora, en index.js :

 var functions = require('firebase-functions'); require("./app/groupFunctions")(module.exports); 

La forma en que funciona es que modules.exports es un object regular de JavaScript, por lo que puedes agregar nuevas properties desde donde quieras.