FCM обратно совместим с GCM. Шаги по настройке FCM на AWS идентичны процедуре настройки GCM и (по крайней мере, на данный момент) FCM прозрачно работает с GCM и SNS в отношении конфигурации на стороне сервера.
Однако , если вы отправляете data
полезные данные на устройство Android, они не будут обработаны, если вы не реализуете расширяемую клиентскую службуFirebaseMessagingService
. Генератор сообщений JSON по умолчанию в консоли AWS отправляет data
сообщения, которые будут игнорироваться вашим приложением, если не будет реализована вышеупомянутая служба. Чтобы обойти это для первоначального тестирования, вы можете предоставить пользовательскую notification
полезную нагрузку, которая будет получена вашим устройством (если ваше приложение не находится на переднем плане)
Есть инструкции по миграции GCM-FCM, предоставленные Google, однако изменения, которые вам необходимо внести, в основном находятся на стороне приложения.
Чтобы протестировать GCM / FCM в своем приложении с помощью SNS, необходимо выполнить следующие шаги:
- Создайте приложение платформы в SNS , выбрав Google Cloud Messaging (GCM) в качестве платформы push-уведомлений и указав свой ключ API сервера в поле ключа API .
- Выберите приложение платформы и нажмите кнопку Создать конечную точку платформы .
- Предоставьте InstanceID (токен устройства ), созданный вашим приложением. Вы должны расширить
FirebaseInstanceIDService
и переопределить onTokenRefresh
метод, чтобы увидеть это в своем приложении для Android. Как только вы это сделаете , удалите и переустановите приложение, и ваш токен должен быть напечатан в консоли отладки в Android Studio при первой загрузке.
- Нажмите кнопку Добавить конечную точку .
- Щелкните ссылку ARN для приложения вашей платформы.
- Выберите только что созданную конечную точку для вашего устройства и нажмите кнопку « Опубликовать в конечной точке» .
- Выберите формат сообщения JSON и нажмите кнопку генератора сообщений JSON .
- Введите тестовое сообщение и нажмите кнопку « Создать JSON». кнопки
- А теперь самое главное.
Сообщение, которое генерирует SNS, будет иметь форму:
{
"GCM": "{ \"data\": { \"message\": \"test message\" } }"
}
Как мы упоминали ранее, data
полезные данные будут игнорироваться, если не была реализована служба для их получения. Мы хотели бы протестировать без написания слишком большого количества кода, поэтому вместо этого мы должны отправить notification
полезную нагрузку. Для этого просто измените сообщение JSON на следующее:
{
"GCM": "{ \"notification\": { \"text\": \"test message\" } }"
}
После этого убедитесь, что ваше приложение не запущено на устройстве, и нажмите кнопку « Опубликовать сообщение» . Теперь вы должны увидеть всплывающее уведомление на вашем устройстве.
Конечно, вы можете сделать все это программно через Amazon SNS API, однако все примеры, похоже, используют data
полезную нагрузку, поэтому вам нужно помнить об этом и генерировать полезную нагрузку, соответствующую вашему варианту использования.