Несколько недель назад я со всей командой Aurity поехал на второй HackerHouse, и на этот раз был на Бали. Чтобы поездка была еще более продуктивной, мы забронировали современный коворкинг, где провели пять мастер-классов. Каждый семинар был подготовлен и проведен разработчиками, где мы делились своими знаниями и опытом. Мы записали все мастер-классы, а теперь делимся с вами первым.

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

Установка NodeJS и Firebase

Для начала нам нужно убедиться, что у нас установлены инструменты Firebase. Мы используем Firebase CLI, который предоставляет множество инструментов для управления, просмотра и развертывания в проектах Firebase.

Как вы увидите в инструкциях выше, для установки и настройки Firebase CLI вам понадобится Node.js на вашем компьютере. Получив его, вы можете установить глобальный интерфейс командной строки Firebase с помощью npm, выполнив следующую команду:

npm install — g firebase-tools

Выбор проекта

Чтобы войти в свои проекты, запустите команду firebase login в своем терминале, используя свою учетную запись Google. После утверждения ваших учетных данных введите команду firebase list, чтобы отобразить все ваши проекты. Чтобы выбрать нужный проект, введите идентификатор проекта после ввода команды firebase use. Если вы не знаете идентификатор проекта или он слишком длинный, вы можете использовать команду firebase use --add, чтобы выбрать проект из интерактивного списка и изменить его псевдоним.

Создание каталогов проектов Firebase

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

Развертывание функции Firebase

Все функции будут развернуты в каталоге под названием «functions», где у вас есть файл index.js. В этом файле вы экспортируете все функции, которые хотите добавить в проект. Чтобы развернуть и перезаписать добавленные функции, перейдите в свой терминал и выполните команду firebase deploy. Если вы хотите развернуть функцию без перезаписи, используйте

firebase deploy --only functions:name_of_the_function

В нашем руководстве мы использовали функцию Firebase Cloud для отправки приглашений. Эта функция дает пользователю возможность пригласить кого-либо в определенный проект с выбранными привилегиями, отправив приглашение по электронной почте. Как только функция будет запущена, вы сможете увидеть все журналы на панели управления Firebase. Так вы будете уверены, что приглашение было отправлено правильно.

Вызов функции Firebase

Есть два прямых способа вызвать функцию:

  1. Функции вызова из вашего приложения, которые включают токен аутентификации
  2. Вызов функций через HTTP-запросы с использованием functions.https

В упомянутой выше функции приглашения мы использовали триггеры Cloud Storage. В этом руководстве вы увидите, что мы использовали function.firestore вместе с документом под названием приглашение, который представляет имя коллекции, в которой находится документ. Каждый раз, когда мы создаем новый документ внутри коллекции, мы извлекаем данные, которые были сохранены в базе данных (например, адрес электронной почты, роль, название проекта). Мы используем Nodemailer для рассылки электронных приглашений новому пользователю. Имейте в виду, что вам нужно подготовить и добавить код шаблона электронного письма, чтобы иметь стилизованное письмо. Как только письмо будет отправлено, вы увидите уведомление в console.log о том, что приглашение было отправлено.

Для запуска функции с помощью HTTP-запроса мы создали функцию под названием «notify». Эта функция использует ранее собранные данные (адрес электронной почты, роль, название проекта) для отправки пользователю специального уведомления об изменениях в его проекте. В зависимости от уведомления и ответа мы создаем электронное письмо, которое отправляется пользователю.

Используя functions.https, мы создали функцию, которая обрабатывает HTTP-события. Обработчик событий для функции HTTP прослушивает событие onRequest (), которое поддерживает маршрутизаторы и приложения, управляемые веб-фреймворком Express.

Чтобы увидеть URL-адрес, который запускает функцию, перейдите на страницу функций в консоли Firebase.

Создание и развертывание правил Firestore

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

Помимо консоли, правила можно писать в проекте Firebase. Файл firebase.json в каталоге правил содержит путь к файлу правил и используется для развертывания правил. Для развертывания правил используйте команду firebase deploy или firebase deploy --only firestore:rules.

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

После просмотра этого руководства вы сможете понять, как создавать и развертывать функции Firebase Cloud и как защитить свою базу данных Firestore. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять их в разделе комментариев, и мы ответим как можно скорее.

Наслаждайтесь своим кодом!