consultas firebase google-cloud-functions firebase-cloud-functions

consultas - Organizar funciones de nube para Firebase



consultas firebase android (2)

¿Cuál es la mejor práctica para organizar todas nuestras funciones de nube para Firebase?

Veo en el repositorio GitHub de muestra que todas las funciones residen en un solo archivo index.js .

Supongo que para un proyecto más grande hay un mejor enfoque para organizar las funciones de la nube para Firebase en diferentes archivos / directorios.


Organizo mis manejadores de eventos por proveedor y recurso en una carpeta llamada triggers . Por ejemplo, donde auth es el proveedor y el user es el recurso; Las functions/triggers/auth/user la carpeta functions/triggers/auth/user contienen un onCreate.js y onDelete.js , que da la bienvenida y limpia un usuario respectivamente.

+--/auth | +--/user | +--/onCreate.js | +--/onDelete.js +--/database +--/storage

Puedes exportar un disparador en particular usando la función require :

exports.onCreateAuthUser = require(''./triggers/auth/user/onCreate''); exports.onDeleteAuthUser = require(''./triggers/auth/user/onDelete'');

Fui un paso más allá y creé un script que automáticamente exporta las funciones para mí. Cambio la extensión de los archivos a f.js y busco recursivamente el directorio de desencadenadores. Para cada archivo encontrado, el nombre de la función se elabora dividiendo el directorio y la ruta del archivo.

Esta estructura se inspiró en la inspección de las firebase-functions internas del paquete firebase-functions npm.


Podría usar algo como export { functionName } from ''./file'' en su archivo index.js.

/functions/index.js

// This is the main entry point for the app written in ES that is compatible with node lts import * as functions from ''firebase-functions''; export { sendWelcomeEmail } from ''./userEmails''; exports.helloWorld = functions.https.onRequest((request, response) => { let helloMsg = `Hello!`; response.send(helloMsg); });