如何在Firebase云功能中重用代码

时间:2020-01-15 06:15:06

标签: javascript firebase google-cloud-functions

我将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"
  },

1 个答案:

答案 0 :(得分:0)

我认为您在exports变量上做错了。我已经复制了它,并且它是这样工作的:

module.exports = {
        function1,
        function2 
}

,然后用()来调用它,例如:helpers.function1()

这应该正常工作。

相关问题