Как настроить push-уведомления из SDK

Как настроить push-оповещения в FCM

Когда вы отправляете сообщения в чат пользователю, который не находится в вашем мобильном приложении, он получит пуш, как при общении в привычных мессенджерах.

1. Включите сервисы Google для вашего приложения

Для работы пушей мы будем использовать Firebase Cloud Messaging (FCM). Если у вас уже есть Firebase-проект с включёнными оповещениями, вы можете пропустить этот шаг.

Придумайте имя для своего проекта и нажмите Create project:

После настройки проекта выберите Cloud Messaging:

Выберите иконку Android:

Укажите package name своего приложения и нажмите Register App:

2. Настройте приложение для получения пушей

Нажмите кнопку Download google-services.json, чтобы загрузить файл конфигурации. Поместите этот файл на уровень вашего приложения.

Нажмите "Далее", а в файле build.gradle уровня приложения кроме прочего добавьте зависимость:

dependencies {
implementation 'com.google.firebase:firebase-messaging:17.+'
}

А также подключите плагин в конце (это важно!) того же файла:

apply plugin: 'com.google.gms.google-services'

Нажмите копку "Далее"

3. Загрузите ваш Server key в настройки Carrot quest

В консоли Firebase перейдите в свой проект, перейдите в Project settings, выберите вкладку Service accounts, нажмите на кнопку Generate new private key и в появившемся окне нажмите Generate key. Браузер предложит скачать JSON-файл с ключом.

Управлять созданными ключами вы сможете из настроек Google Cloud Platform. Для этого в консоли Firebase в разделе Service accounts перейдите по ссылке Manage service account permissions.

В Carrot quest перейдите в раздел Настройки → Разработчикам и загрузите ключ.

4. Установите FCM иконку (не обязательно)

Иконку уведомлений можно устанавливать используя следующий метод:

Carrot.setNotificationIcon(notificationIconId)

где notificationIconId - это идентификатор ресурса иконки.

5. Настройки в случае, если вы уже используете FCM

Этот пункт важен для тех приложений, которые уже используют FCM для работы с собственными пушами. Здесь описано, как изменить свою службу FirebaseMessagingService

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived (RemoteMessage remoteMessage) {
        if (Carrot.isCarrotPush(remoteMessage)) {
            Carrot.sendFirebasePushNotification(remoteMessage, this)
        } else {
            //Your code
        }
    }
}

Советы

Проверьте эти пункты, если у вас возникли проблемы с настройкой FCM:

  • Проверьте, что у вас стоит галочка Отправлять пуш-уведомления (Send a push notification), когда вы отправляете ручное сообщение

  • Проверьте, что на тестовом устройстве не запрещены пуш-уведомления от вашего приложения: Настройки → Уведомления и строка состояния → Диспетчер уведомлений (путь может отличаться в зависимости от версии Android).

  • Проверьте Push Server API key.

  • Проверьте, что вы поместили google-services.json в правильную директорию.