为Firebase组织云功能

Fra*_*TIN 20 firebase google-cloud-functions firebase-cloud-functions

组织Firebase的所有云功能的最佳做法是什么?

我从示例GitHub存储库中看到所有函数都驻留在一个index.js文件中.

我想对于更大的项目,有更好的方法在不同的文件/目录中组织Firebase的Cloud Functions.

Cal*_*lam 7

我按提供者和资源在一个名为的文件夹中组织我的事件处理程序triggers.例如,auth提供者在哪里,user是资源; 该文件夹functions/triggers/auth/user包含一个onCreate.jsonDelete.js,分别欢迎和清理用户.

+--/auth
|  +--/user
|     +--/onCreate.js
|     +--/onDelete.js
+--/database
+--/storage
Run Code Online (Sandbox Code Playgroud)

您可以使用以下require函数导出特定触发器:

exports.onCreateAuthUser = require('./triggers/auth/user/onCreate');    
exports.onDeleteAuthUser = require('./triggers/auth/user/onDelete');
Run Code Online (Sandbox Code Playgroud)

我更进了一步,创建了一个自动为我导出函数的脚本.我将文件的扩展名更改为f.js并递归搜索触发器目录.对于找到的每个文件,通过分解目录和文件路径来编制函数名称.

这个结构的灵感来自于检查firebase-functionsnpm包的内部结构.