Облачные функции для Firebase — это способ запуска внутреннего кода на серверах Google без необходимости управлять вашими серверами. Ваш код написан на JavaScript или TypeScript и запускается такими событиями, как вход пользователей в систему, загрузка файлов или изменения в вашей базе данных. Облачные функции полностью управляемы, поэтому вам не нужно беспокоиться о масштабировании или подготовке серверов.

Вот несколько конкретных примеров того, как можно использовать облачные функции:

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

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

  • Облачные функции запускаются событиями. Это важно, потому что это означает, что ваш код будет выполняться только тогда, когда что-то произойдет, например, вход пользователя или загрузка файла. Это может помочь улучшить производительность вашего приложения.
  • Облачные функции полностью управляемы. Это означает, что Google берет на себя все связанные с сервером задачи, такие как подготовка серверов, масштабирование серверов и обслуживание серверов. Это освобождает вас, чтобы сосредоточиться на коде вашего приложения.

Функции Firebase могут быть написаны на нескольких языках, однако большинство разработчиков внешнего интерфейса, использующих Firebase, предпочитают Typescript, поскольку это язык программирования высокого уровня, который использует статическую типизацию для javascript.
Иногда это связано с ограничениями, например, мы не можем использовать одну функцию с несколькими конечными точками.
Чтобы решить эту проблему, мы используем экспресс-приложение и передаем его триггеру HTTP в функции.

Руководство

Этот базовый учебник даст вам обзор создания и развертывания экспресс-приложения в функции Firebase.

Предпосылки:

  1. Аккаунт Firebase (план Blaze)

Облачные функции недоступны в плане Spark, вам необходимо перейти на план Blaze (оплата по мере использования).

2. Node.js (для использования Firebase SDK)
3. Почтальон (если вы также собираетесь попробовать вызов POST API)

Начнем с создания проекта Firebase.

Если у вас уже есть настройка проекта firebase, вы можете пропустить этот шаг.

Перейдите в консоль Firebase и нажмите Добавить проект.

Задайте имя и отредактируйте идентификатор проекта. Если вы хотите настроить его в соответствии со своим идентификатором, нажмите Продолжить.

Я бы порекомендовал настроить Google Analytics для этого проекта, так как он может быть полезен на более поздних этапах.

Вот и все, для создания проекта Firebase требуется всего 3 шага.

Теперь на локальном хосте создайте новую папку и откройте ее в редакторе кода вместе с встроенным терминалом, я предпочитаю vscode.

Установите Firebase SDK с помощью следующей команды

npm install -g firebase

После установки Firebase нам нужно инициализировать проект Firebase, чтобы получить доступ к облачному проекту Firebase на нашем локальном компьютере. Для этого сначала нам нужно запустить firebase login, чтобы войти в систему через браузер и аутентифицировать интерфейс командной строки Firebase.

Следующий шаг — запустить firebase init functions и следовать инструкциям, которые я упомянул ниже.

После успешного выполнения этих команд структура вашего проекта будет выглядеть так:

Позвольте мне кратко рассказать вам об этих файлах

myprojectfolder
+- .firebaserc    # Hidden file that helps you quickly switch between
|                 # projects with `firebase use`
|
+- firebase.json  # Describes properties for your project
|
+- functions/     # Directory containing all your functions code
      |
      +- package.json  # npm package file describing your Cloud Functions code
      |
      +- index.js      # Main source file for your Cloud Functions code
      |
      +- node_modules/ # Directory where your dependencies (declared in
                        # package.json) are installed

Затем вы можете установить другие зависимости. Зайдите в папку functions и установите экспресс и body-parser.

cd functions
npm install express body-parser compression --save

Теперь пришло время написать экспресс-приложение, открыть index.js и инициализировать firebase и экспресс-приложение, как указано ниже.

Самое лучшее в Firebase — это то, что мы можем протестировать функцию в локальном эмуляторе, прежде чем развернуть ее в Firebase (облаке Google).

Выполнить npm run serve или firebase emulators:start --only functions

Поскольку это был всего лишь API GET, мы можем напрямую открыть предоставленную ссылку эмулятора в браузере, в моем случае это было http://127.0.0.1:5001/expressfunctions-app/us. -central1/tasks»
Для вашего проекта он будет почти таким же, за исключением идентификатора проекта, который в вашем случае будет другим.

Эмулятор также локально запускает довольно приличный пользовательский интерфейс.

Теперь пришло время развернуть его в функции Firebase, чтобы обслуживать его в облаке.

Запустите npm run deploy или firebase deploy --only function на встроенном терминале, чтобы развернуть только что созданную функцию экспресс-API.

После развертывания функции она появится в вашей консоли Firebase.

Вы также можете попробовать это в браузере, так как это GET API.

Я загрузил полный проект на свой Github.



Ваше участие и интерес значат для меня целый мир. Мне было очень приятно поделиться с вами этими знаниями, и я надеюсь, что вы нашли их ценными и приятными.

Помните, что путь изучения и исследования никогда не заканчивается. Итак, продолжайте подпитывать свое любопытство, продолжайте развивать свои навыки и продолжайте получать удовольствие от программирования.

Еще раз спасибо за то, что вы замечательный читатель! Желаю вам всего наилучшего в ваших будущих начинаниях.

До следующего раза, удачного кодирования и берегите себя! 😊👋