Что можно делать с помощью Cloud Functions

Cloud Functions предоставляет разработчикам доступ к событиям Firebase и Google Cloud, а также масштабируемые вычислительные мощности для выполнения кода в ответ на эти события. Хотя приложения Firebase могут использовать Cloud Functions по-разному в зависимости от своих требований, типичные сценарии использования можно разделить на следующие категории:

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

Уведомляйте пользователей о важных событиях

Разработчики могут использовать Cloud Functions, чтобы поддерживать вовлеченность пользователей и предоставлять им актуальную информацию о приложении. Например, в приложении, где пользователи могут следить за действиями друг друга, каждый раз, когда кто-то подписывается на другого пользователя, в Realtime Database выполняется запись. Затем это событие записи может запустить функцию для создания уведомлений Firebase Cloud Messaging (FCM), чтобы сообщить соответствующим пользователям, что у них появились новые подписчики.

Диаграмма, показывающая описанный ниже процесс работы приложения

  1. Функция активируется при записи в путь Realtime Database, где хранятся подписчики.
  2. Функция составляет сообщение для отправки через FCM.
  3. FCM отправляет уведомление на устройство пользователя.

Чтобы посмотреть рабочий код, ознакомьтесь с образцом кода на GitHub:

Другие интересные варианты использования уведомлений

  • Отправка писем с подтверждением пользователям, подписавшимся на новостную рассылку.
  • Отправлять приветственное письмо, когда пользователь завершает регистрацию.
  • Отправлять SMS-подтверждение, когда пользователь создает аккаунт.

Очистка и обслуживание базы данных

Обработка событий базы данных Cloud Functions позволяет изменять Realtime Database или Cloud Firestore в ответ на действия пользователей, поддерживая систему в нужном состоянии. Например, вы можете отслеживать события записи и менять формат (например, на заглавные буквы) определенных строк в сообщениях пользователей. Вот как это будет работать:

Диаграмма, показывающая описанный ниже процесс работы приложения

  1. Обработчик событий базы данных прослушивает события записи по определенному пути и извлекает данные о событии, содержащие текст сообщения.
  2. Функция обрабатывает текст, чтобы преобразовать строки в верхний регистр.
  3. Функция записывает обновленный текст обратно в базу данных.

Чтобы посмотреть рабочий код, ознакомьтесь с образцом кода на GitHub:

Другие варианты использования очистки и обслуживания баз данных

  • Удалить контент удаленного пользователя из Realtime Database.
  • Ограничьте количество дочерних узлов в базе данных Firebase.
  • Отслеживайте количество элементов в списке Realtime Database.
  • Скопируйте данные из Realtime Database в Google Cloud BigQuery.
  • Преобразуйте текст в эмодзи.
  • Управление вычисляемыми метаданными для записей базы данных.

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

Вы можете использовать Cloud Functions, чтобы разгрузить ресурсоемкие задачи (например, требующие высокой производительности ЦП или сети) с устройства пользователя в Google Cloud. Это позволит повысить скорость работы приложения. Например, вы можете написать функцию, которая будет прослушивать загрузку изображений в Cloud Storage, скачивать их на экземпляр, на котором выполняется функция, изменять их и загружать обратно в Cloud Storage. Для этого можно использовать такие инструменты, как sharp или Pillow.

Диаграмма, показывающая описанный ниже процесс работы приложения

  1. Функция запускается, когда графический файл загружается в Cloud Storage.
  2. Функция скачивает изображение и создает его уменьшенную версию.
  3. Функция записывает местоположение значка в базу данных, чтобы клиентское приложение могло найти и использовать его.
  4. Функция загружает значок обратно в Cloud Storage в новое место.
  5. Приложение скачивает ссылку на значок.

Пример обработки изображений приведен в руководстве по обработке событий Cloud Storage.

Другие примеры пакетных заданий в облаке Firebase

  • Периодически удаляйте неиспользуемые аккаунты Firebase: Node.js | Python.
  • Автоматически создавайте резервные копии загруженных изображений: Node.js | Python.
  • Отправлять пользователям массовые рассылки.
  • Периодически агрегируйте и обобщайте данные.
  • Обработка очереди ожидающих заданий.

Интеграция со сторонними сервисами и API

Cloud Functions может помочь вашему приложению лучше работать с другими сервисами, вызывая и предоставляя веб-API. Например, приложение для совместной разработки может публиковать коммиты GitHub в чат-комнате рабочей группы.

Диаграмма, показывающая описанный ниже процесс работы приложения

  1. Пользователь отправляет коммиты в репозиторий GitHub.
  2. Функция HTTPS активируется через GitHub webhook API.
  3. Функция отправляет уведомление о фиксации в командный канал Slack.

Другие способы интеграции со сторонними сервисами и API

  • Используйте Cloud Vision API, чтобы анализировать загруженные изображения и добавлять к ним теги.
  • Переводите сообщения с помощью Google Переводчика.
  • Используйте специальную аутентификацию для входа пользователей.
  • Отправлять запрос в вебхук при записи в Realtime Database.
  • Включите полнотекстовый поиск по элементам Realtime Database.
  • Обрабатывать платежи от пользователей.
  • Создавайте автоматические ответы на звонки и SMS.
  • Создайте чат-бота с помощью Google Ассистента.