Что можно делать с помощью облачных функций?

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-подтверждение.

Выполнить очистку и обслуживание базы данных.

With Cloud Functions database event handling, you can modify Realtime Database or Cloud Firestore in response to user behavior, keeping the system in your desired state. For example, you could monitor write events and change the format (for example, change to all uppercase) of certain strings in users' messages. Here's how that could work:

Диаграмма, иллюстрирующая описанный ниже алгоритм работы приложения.

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

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

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

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

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

Вы можете использовать Cloud Functions для переноса ресурсоемких задач (требующих больших вычислительных мощностей или сети) в облако Google, вместо запуска их на устройстве пользователя, что повысит скорость отклика вашего приложения. Например, вы можете написать функцию, которая будет отслеживать загрузку изображений в 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 запускается через API веб-перехватчиков GitHub .
  3. Функция отправляет уведомление о коммите в командный канал Slack.

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

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