Итак, основываясь на этой публикации Medium Я попытался разделить свои функции firebase на разные файлы.Мой index.js выглядит так:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const glob = require("glob");
const camelCase = require("camelcase");
const files = glob.sync('./**/*.f.js', { cwd: __dirname, ignore: './node_modules/**'});
admin.initializeApp(functions.config().firebase);
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);
}
}
Мой файл test.f.js, в котором находится моя функция, находится в некоторых подпапках и выглядит следующим образом:
const functions = require('firebase-functions');
exports.addNew = functions.https.onRequest((request, response) => {
...
})
Myподпапки называются «dev» и «User», файл называется «Test», а моя функция «addNew»
. При попытке развернуть я получаю следующую ошибку:
⚠ functions[devUserTest-addNew(us-central1)]: Deployment error.
Function load error: Node.js module defined by file index.js is expected to export function named devUserTest.addNew
Я надеюсь, что кто-то может предложить решение этой проблемы.
Танки!