структурировать функции firebase по нескольким временам выполнения - PullRequest
0 голосов
/ 10 января 2020

Я использую экосистему Firebase уже более 2 лет, но, поскольку в Google не хватает приличной документации, я часто прихожу сюда, чтобы задать очень простые c вещи, которые мы должны изучить сразу после "Привет, мир".

При использовании функций Firebase я стараюсь его модульно сделать, чтобы он был читабельным и простым в обслуживании. мне удалось сделать это, имея файл «index» и несколько подфайлов, которые содержат логи c для сложных функций ...
, хотя это работает очень хорошо, мой файл индекса становится очень длинным, так как я ' У меня все больше и больше функций, и ему также нужно иметь дело с некоторой конфигурацией для каждой из этих указанных c функций ...

Я возился с панелью управления Firebase https://console.cloud.google.com/functions/list? и я обнаружил, что можно создать новую функцию поверх этой онлайн-формы ... когда это делается, бэкэнд Firebase каким-то образом создает новую "среду выполнения" для этой функции. Я имею в виду, что каждая функция, созданная этой формой, имеет свой собственный пакет «index. js» ». json"

как я могу сделать это без необходимости создавать каждую функцию из этой формы?
как Могу ли я просто написать новую экосистему функций, развернуть ее с помощью firebase cli и получить для нее эту отдельную структуру?

1 Ответ

1 голос
/ 10 января 2020

Все облачные функции всегда логически изолированы друг от друга во время выполнения. Хотя они могут совместно использовать некоторый общий код при развертывании, они не делят ничего другого.

Интерфейс командной строки Firebase требует, чтобы все ваши функции были определены в одной точке входа, которой является ваш индекс. js. Вот как это работает. Если вам это не нравится, вы можете развертывать функции по отдельности, используя gcloud , но вы не сможете использовать модуль firebase-functions для объявления и реализации вашей функции. gcloud использует разные соглашения.

Если вы хотите продолжить развертывание с помощью Firebase CLI, вы можете добавить новую функцию в свой индекс. js. Его можно развернуть отдельно от других функций, используя аргумент --only. Например, если ваша новая функция называется «fn»:

firebase deploy --only functions:fn

Это развернет только fn и ни одну из других функций, определенных в вашем индексе. Вы можете прочитать об этом и других параметрах в документации Firebase CLI для развертывания функций .

Если вы абсолютно не хотите, чтобы все ваши функции были в одном индексе. js, вы можно разделить определения между несколькими файлами и require или import их в основной индекс. js. Вам решать, как вы хотите организовать исходный файл, используя возможности, предоставляемые nodejs и JavaScript.

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