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

- Функция активируется при записи в путь Realtime Database, где хранятся подписчики.
- Функция составляет сообщение для отправки через FCM.
- FCM отправляет уведомление на устройство пользователя.
Чтобы посмотреть рабочий код, ознакомьтесь с образцом кода на GitHub:
- Node.js: fcm-notifications
- Python: fcm-notifications
Другие интересные варианты использования уведомлений
- Отправка писем с подтверждением пользователям, подписавшимся на новостную рассылку.
- Отправлять приветственное письмо, когда пользователь завершает регистрацию.
- Отправлять SMS-подтверждение, когда пользователь создает аккаунт.
Очистка и обслуживание базы данных
Обработка событий базы данных Cloud Functions позволяет изменять Realtime Database или Cloud Firestore в ответ на действия пользователей, поддерживая систему в нужном состоянии. Например, вы можете отслеживать события записи и менять формат (например, на заглавные буквы) определенных строк в сообщениях пользователей. Вот как это будет работать:

- Обработчик событий базы данных прослушивает события записи по определенному пути и извлекает данные о событии, содержащие текст сообщения.
- Функция обрабатывает текст, чтобы преобразовать строки в верхний регистр.
- Функция записывает обновленный текст обратно в базу данных.
Чтобы посмотреть рабочий код, ознакомьтесь с образцом кода на GitHub:
- Node.js: uppercase-rtdb
- Python: uppercase-rtdb
Другие варианты использования очистки и обслуживания баз данных
- Удалить контент удаленного пользователя из Realtime Database.
- Ограничьте количество дочерних узлов в базе данных Firebase.
- Отслеживайте количество элементов в списке Realtime Database.
- Скопируйте данные из Realtime Database в Google Cloud BigQuery.
- Преобразуйте текст в эмодзи.
- Управление вычисляемыми метаданными для записей базы данных.
Выполняйте ресурсоемкие задачи в облаке, а не в приложении.
Вы можете использовать Cloud Functions, чтобы разгрузить ресурсоемкие задачи (например, требующие высокой производительности ЦП или сети) с устройства пользователя в Google Cloud. Это позволит повысить скорость работы приложения. Например, вы можете написать функцию, которая будет прослушивать загрузку изображений в Cloud Storage, скачивать их на экземпляр, на котором выполняется функция, изменять их и загружать обратно в Cloud Storage. Для этого можно использовать такие инструменты, как sharp или Pillow.

- Функция запускается, когда графический файл загружается в Cloud Storage.
- Функция скачивает изображение и создает его уменьшенную версию.
- Функция записывает местоположение значка в базу данных, чтобы клиентское приложение могло найти и использовать его.
- Функция загружает значок обратно в Cloud Storage в новое место.
- Приложение скачивает ссылку на значок.
Пример обработки изображений приведен в руководстве по обработке событий Cloud Storage.
Другие примеры пакетных заданий в облаке Firebase
- Периодически удаляйте неиспользуемые аккаунты Firebase: Node.js | Python.
- Автоматически создавайте резервные копии загруженных изображений: Node.js | Python.
- Отправлять пользователям массовые рассылки.
- Периодически агрегируйте и обобщайте данные.
- Обработка очереди ожидающих заданий.
Интеграция со сторонними сервисами и API
Cloud Functions может помочь вашему приложению лучше работать с другими сервисами, вызывая и предоставляя веб-API. Например, приложение для совместной разработки может публиковать коммиты GitHub в чат-комнате рабочей группы.

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