Как реализовать Push-уведомления Firebase на Android (FCM + серверная часть)

YOUTUBE · 25.11.2025 06:51

Ключевые темы и таймкоды

Push-уведомления и Firebase Cloud Messaging

0:00
  • Видео обсуждает push-уведомления и их реализацию с помощью Firebase Cloud Messaging (FCM).
  • FCM - это решение Google для отправки push-уведомлений на устройства Android.
  • В прошлом видео автор уже рассказывал о FCM, но с тех пор произошли изменения, и теперь используется HTTP v1 API.
  • В этом видео автор демонстрирует, как создать простое приложение для отправки push-уведомлений с использованием FCM.

Настройка сервера и использование Firebase

3:46
  • Для реализации push-уведомлений требуется настройка сервера.
  • Автор использует Kato для этой цели, но отмечает, что настройка будет простой.
  • В видео автор подключает свой проект Android Studio к Firebase и создает новый проект.
  • Он также обсуждает возможность включения Google Analytics для получения дополнительной аналитики.

Создание проекта и добавление Firebase

6:06
  • Создание нового проекта и добавление Firebase в Android приложение.
  • Регистрация приложения в Firebase и загрузка файла сервиса Google.
  • Добавление Firebase SDK в проект и добавление конкретных зависимостей.

Создание службы push-уведомлений

9:51
  • Создание класса Push Notification Service, который наследуется от FCM.
  • Добавление службы в манифест и фильтра намерений для прослушивания push-уведомлений.
  • Использование токенов обновления для аутентификации и сохранения текущего токена.

Определение состояния и обновление сервера

13:15
  • Определение состояния для пользовательского интерфейса, включая токен удаленного пользователя и текст push-уведомления.
  • Обновление сервера для сохранения текущего токена и обработки push-уведомлений.

Отправка push-уведомлений

14:26
  • В видео объясняется, как работает механизм push-уведомлений и почему серверная часть необходима для обеспечения безопасности.
  • Серверная часть используется для аутентификации отправки уведомлений и хранения секретного ключа Firebase.
  • Клиент отправляет HTTP-запрос на сервер, содержащий информацию о названии уведомления, тексте и адресе получателя.

Создание модели просмотра чата

19:26
  • В модели просмотра чата происходит волшебство, когда пользователь нажимает на кнопки для отправки уведомлений.
  • Модель просмотра чата использует модифицированный API для отправки HTTP-запросов на сервер.
  • API определяется в модели просмотра чата и включает функции для отправки сообщений и широковещательной передачи.

Отправка сообщений

23:08
  • В модели просмотра чата создаются функции для отправки сообщений, которые могут быть отправлены конкретному получателю или транслированы на все устройства.
  • Для отправки сообщений используется модифицированный API и Retrofit.
  • Создаются классы данных для представления тела JSON, отправляемого по сети.

Создание пользовательского интерфейса

24:43
  • Создание диалога ввода токена для получения и ввода токена.
  • Использование менеджера буфера обмена для копирования токена в буфер обмена.
  • Создание пользовательского интерфейса для отправки сообщения с использованием текстового поля и двух кнопок.

Создание пользовательского интерфейса для отправки сообщения

32:33
  • Создание экрана чата для отправки сообщения с использованием текста сообщения и двух кнопок.
  • Использование столбца для создания структуры экрана чата.
  • Добавление текстового поля с контуром и заполнителя для ввода сообщения.
  • Создание двух кнопок со значками для отправки сообщения.

Создание приложения для чата

36:01
  • Создание приложения для чата с использованием Firebase и Kotlin.
  • Создание пользовательского интерфейса с использованием Surface и ViewModel.
  • Запрос разрешений на уведомления и использование Firebase Messaging для отправки и получения push-уведомлений.

Тестирование приложения

41:04
  • Тестирование приложения на разных устройствах и отправка push-уведомлений с помощью Firebase Console.
  • Использование тем для отправки уведомлений на конкретные устройства.

Создание серверной части

46:10
  • Создание серверной части на основе Cato для обработки HTTP-запросов и отправки уведомлений.

Создание проекта Kator

46:44
  • Создание проекта Kator с использованием Intellij Ultimate и встроенного мастера создания проектов.
  • Использование генератора проекта Kator для создания проекта и добавления плагинов.

Настройка проекта

48:25
  • Настройка проекта в Intellij, включая добавление зависимости Firebase Admin SDK.
  • Синхронизация изменений в Gradle.

Настройка Firebase Admin SDK

51:29
  • Связывание серверного сервера с консолью Firebase с помощью ключа учетной записи службы.
  • Чтение ключа учетной записи службы из файла ресурсов.

Отправка сообщений

54:04
  • Определение объектов DTO для отправки сообщений.
  • Создание функции для отправки сообщений и настройки уведомлений.

Настройка маршрутов

56:12
  • Определение маршрутов отправки сообщений в пакете.
  • Объединение всех функций в одну функцию.

Настройка серверной части

57:18
  • Создание функции для отправки push-уведомления на серверной части.
  • Использование Firebase Messaging для отправки сообщений.
  • Возвращение сообщения и проверка, что тело JSON не пусто.

Настройка клиентской части

1:00:46
  • Получение токена устройства и отправка сообщения.
  • Проверка работы отправки уведомлений с одного устройства на другое.

Проблемы с сериализацией

1:01:46
  • Аннотирование классов с помощью Serializable для сериализации Kotlin.
  • Решение проблемы с необработанными сообщениями и сериализацией.

Завершение настройки

1:05:18
  • Работа с широковещательными сообщениями и отправка уведомлений на определенные устройства.
  • Возможность внедрения push-уведомлений в проект с большим масштабом.