我正在使用 firebase 函数并达到数百个函数,现在很难用单个函数来管理它index.js
文件如大量示例所示
我尝试将该函数拆分为多个文件,例如:
--firebase.json
--functions
--node_modules
--index.js
--package.json
--app
--groupFunctions.js
--authFunctions.js
--storageFunctions.js
在这个结构中,我将函数分为三类并放入这三个文件groupFunctions.js
, authFunctions.js
, and storageFunctions.js
。然后我尝试导入这个文件index.js
,但我不知道为什么它对我不起作用。
Here is 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...
//...
})
}
Here is index.js
file:
var functions = require('firebase-functions');
module.exports = require("./app/groupFunctions")();
我的编辑器没有在这段代码中发出任何警告。但是当我使用以下代码部署此代码时firebase deploy --only functions
,它不部署功能。如果某些功能已存在于 firebase 控制台上,则会在部署时删除所有功能。
here is deployment logs:
问题也被问到github https://github.com/firebase/functions-samples/issues/170
工作代码示例:
文件结构:
--firebase.json
--functions
--node_modules
--index.js
--package.json
--src
--groupFunctions.js
--authFunctions.js
--storageFunctions.js
index.js
file:
require('./src/groupFunctions.js')(exports);
require('./src/authFunctions.js')(exports);
require('./src/storageFunctions.js')(exports);
groupFunctions.js
file:
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...
//...
})
}
更新:现在我有更好的解决方案
完整的工作代码位于https://github.com/malikasinger1/firebase-functions-with-typescript https://github.com/malikasinger1/firebase-functions-with-typescript它是用 Typescript 和 Webpack 等尖端技术编写的。您可以将其用作样板/启动器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)