Что можно делать с помощью 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 Ассистента.