Как повторно использовать код в облачных функциях Firebase - PullRequest
0 голосов
/ 15 января 2020

Мои облачные функции Firebase настроены на отдельные файлы (functionName.f. js), а затем мой индекс. js файл экспортирует файлы в виде функций со следующим фрагментом кода:

index . js file

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 file

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;
}

Проблема в том, что когда на функцию1 ссылаются, как указано выше, функция2, похоже, тоже выполняется, хотя ее никогда не вызывали.

my eslintr c. json соответствующий раздел файла

  "parserOptions": {
    // Required for certain syntax usages
    "ecmaVersion": 2018,
    "sourceType": "module"
  },

1 Ответ

0 голосов
/ 15 января 2020

Я думаю, что вы делаете что-то не так с exports переменной. Я скопировал его, и он работает следующим образом:

module.exports = {
        function1,
        function2 
}

, а затем вызовите его с помощью (), например: helpers.function1()

Это должно работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...