我将Firebase云功能设置为单个文件(functionName.f.js),然后我的index.js文件使用以下代码将文件导出为函数:
index.js文件
for (let f = 0, fl = files.length; f < fl; f++) {
const file = files[f];
const functionName = camelCase(file.slice(0, -5).split('/').join('_')); // Strip off '.f.js'
if (!process.env.FUNCTION_NAME || process.env.FUNCTION_NAME === functionName) {
exports[functionName] = require(file);
}
}
exports = module.exports.function1 = function1();
exports = module.exports.function2 = function2();
//omitted function1 and function2 code
我正在尝试在多个不同的功能文件中重用代码。目前,我在“ index.js”文件中具有要重用的功能-然后我要在要调用这些函数的任何函数文件中引用index.js文件,如下所示:
function1.f.js文件
const helpers = require('../index');
const functions = require('firebase-functions');
const admin = require('firebase-admin');
exports = module.exports = functions.https.onCall(async (data, context) => {
await helpers.function1;
}
问题是,当像上面那样引用function1时-即使从没调用过function2,它似乎也可以执行。
我的eslintrc.json文件的相关部分
"parserOptions": {
// Required for certain syntax usages
"ecmaVersion": 2018,
"sourceType": "module"
},
答案 0 :(得分:0)
我认为您在exports
变量上做错了。我已经复制了它,并且它是这样工作的:
module.exports = {
function1,
function2
}
,然后用()来调用它,例如:helpers.function1()
这应该正常工作。