Разве мы не можем записать несколько файлов в Firebase Cloud Functions?

Как мы можем реализовать архитектуру микросервисов с использованием облачных функций Firebase? Можно ли записывать несколько файлов .js, в отличие от записи всех функций в index.js, чтобы нам не нужно было повторно развертывать все функции для изменения одной функции


person Mahi Tej Gvp    schedule 18.07.2017    source источник


Ответы (3)


Я импортирую другие файлы .js с функциями firebase. Просто подумайте о папке functions как о корне, я по ошибке пытался импортировать файлы из родительской папки / functions.

index.js

var paymentFunctions = require('./payment_functions');

вместе с чем-то вроде:

exports.paymentMethodTask = functions.database.ref('/newPaymentMethodTask/{taskId}').onWrite(event => {
    return paymentFunctions.processPaymentMethodTask(event);
});

Со структурой папок:

/myProject/functions/index.js
/myProject/functions/payment_functions.js

Затем экспортируйте свои функции в payment_functions.js как обычно:

module.exports = {
    processPaymentMethodTask: function test(event) {
        //do something here with the event
    }
};

https://medium.com/step-up-labs/our-experience-with-cloud-functions-for-firebase-d206448a8850

person viral 9966    schedule 26.07.2017

Все ваши облачные функции для Firebase должны быть определены в файле index.js. Но это не значит, что вам нужно реализовать все функции в одном файле.

Я часто реализую большую часть каждой функции в отдельном файле. Например, если я использую API Google Cloud Vision для добавления текста к изображениям, у меня будет ocr.js. Я даю этому файлу основной раздел, чтобы я мог запускать скрипт с локального терминала, используя node ocr.js. Затем в моем index.js мне нужно немного больше кода, чем импорт ocr.js и подключение его к облачным функциям.

Также см:

person Frank van Puffelen    schedule 18.07.2017

Привет, вы можете сделать это следующим образом.

alpha.js

const functions = require('firebase-functions');
exports.alphaFunction = functions.https.onRequest((request, response) => {
   // Your code
});

index.js

const functions = require('firebase-functions');
var alphaFunction = require('./alpha');
exports.mainFunction = functions.https.onRequest((request, response) => {
    //Inside your main function
    exports.alphaFunction = alphaFunction.alphaFunction();
});
person srijan439    schedule 20.01.2021