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 Ассистента.