Одной из важнейших функций бренда, выпущенных Firebase на прошлых мероприятиях Google Cloud Next’17 и Google I / O’17, были Облачные функции для Firebase.
Благодаря этой функции, наконец, мы можем создать «Backend», просто используя Firebase. Это подход к бессерверной архитектуре.
Облачные функции запускают код JavaScript на сервере, и это позволяет вам писать секретный код, например, ключи и секреты API, процессы оплаты, управлять облачным хранилищем и базой данных в качестве администратора.
Как я уже сказал, облачные функции пока следует писать на JavaScript с использованием среды Node.js (v6.9.x). В будущем они добавят новые языки.
В этом посте мы покажем, как установить инструменты и запустить проект, чтобы начать работу с Cloud Functions for Firebase. Пойдем!
Настройка среды
Прежде всего, вам необходимо установить Node.js, по крайней мере, версии 6.9.x или выше. Вы можете загрузить и установить для своей SO с веб-сайта проекта Node.js. Когда вы это сделаете, вы можете установить Firebase CLI, чтобы запустить новый проект и настроить функции. Вы можете установить его глобально с помощью npm:
$ npm install -g firebase-tools
Вы можете проверить, правильно ли он установлен, с помощью команды:
$ firebase version > 3.9.1
Убедитесь, что у вас Firebase CLI версии 3.5.x или выше, в противном случае функция функций не работает.
Следующим шагом является создание нового проекта в Firebase Console Dashboard и в терминале командой:
$ firebase init > Which Firebase CLI features do you want to setup for this folder? Press Space to select features, then Enter to confirm your choices. (Press <space > to select) ❯◯ Database: Deploy Firebase Realtime Database Rules ◯ Functions: Configure and deploy Cloud Functions ◯ Hosting: Configure and deploy Firebase Hosting sites
Вам нужно выбрать параметры «Функции», чтобы использовать облачные функции в своем проекте. Он создает новую папку с именем «functions» внутри вашего проекта. Вот куда пойдет код JavaScript.
Эта папка содержит проект NPM с файлом package.json и index.js, в котором должны быть объявлены облачные функции.
В файле package.json определены две библиотеки, которые мы будем использовать: firebase-functions и firebase-admin.
- firebase-functions позволяют нам запускать облачные функции на основе событий из базы данных реального времени, облачного хранилища, URL-адресов HTTPS, конверсий Google Analytics и т. д.
- firebase-admin позволяет нам писать и читать базу данных реального времени в качестве роли администратора и сначала инициализировать приложение.
Чтобы установить эти зависимости, мы должны перейти в каталог функций вашего проекта и выполнить следующую команду:
$ npm install
Эта команда загружает все зависимости, указанные в файле package.json, в новую папку с именем node_modules.
Разработка вашей первой облачной функции
Когда вы это сделаете, вы можете потребовать библиотеки и использовать их из index.js как форма Node.js (CommonJS):
// functions/index.js const admin = require('firebase-admin'); const functions = require('firebase-functions);
Следующая строка настраивает приложение Firebase на стороне сервера, получая конфигурацию firebase из functions.config (). Firebase
// functions/index.js admin.initializeApp(functions.config().firebase);
Если вы не собираетесь использовать функции хранилища и / или базы данных из облака, вам не нужно использовать библиотеку администратора или библиотеку функций.
Чтобы создать и использовать облачные функции, которые мы будем разрабатывать, их необходимо экспортировать, чтобы среда Node.js, созданная Firebase в событии развертывания, могла их использовать.
В этом руководстве я собираюсь создать пример функции HTTPS, которая будет выполняться, когда мы вводим URL-адрес в браузере.
// functions/index.js exports.helloWorld = functions.https.onRequest((req, res) => { // TODO });
Синтаксис HTTPS Cloud Functions, скорее всего, ExpressJS. Событие Request запускает функцию обратного вызова с объектами request и response.
Мы вводим имя функции (helloWorld) и используем библиотеку functions с API https и событием onRequest. .
Внутри функций мы отправляем браузеру только ответ с текстом: «Hello, World!» для проверки рабочего процесса:
// functions/index.js exports.helloWorld = functions.https.onRequest((req, res) => { res.status(200).send('Hello, World!'); });
Пришло время развернуть в облаке. Для этого нам потребуется в терминале использовать команду:
$ firebase deploy --only functions
или, если в вашем проекте используются только функции, вы можете использовать команду firebase deploy
В первый раз этот процесс может занять некоторое время.
После того, как функция развернута, вы можете вызвать ее, введя URL-адрес в браузере. URL будет таким:
https://us-central1-<project-id>.cloudfunctions.net/helloWorld
id-проекта - это идентификатор вашего проекта, а helloWorld - это имя функции, которое мы выбрали ранее. Если вы введете его в браузере, вы увидите следующее:
Hello, World!
Вот и все! Просто мы развертываем функцию сервера, не беспокоясь о конфигурации сервера, управлении, установке SO, среде и т. Д. С этой бессерверной архитектурой вы можете сосредоточиться на своем приложении и своем коде.
Вы можете найти похожую статью на испанском в моем блоге: carlosazaustre.es