Не так давно Google купили Firebase и теперь на странице с описанием GCM нас встречает радостная новость о том, что пора бы мигрировать на Firebase.
В этой статье мы разберем тестовый проект и рассмотрим один подводный камень связанный с иконкой уведомления.
Нам понадобится:
Шаг 1.
Скачайте демо-проект и откройте его в своей любимой Android Studio.
Шаг 2.
Теперь нам нужно пойти в Firebase console и добавить наш проект.
![](https://habrastorage.org/r/w1560/files/e9f/27b/ee3/e9f27bee318448cfa4cc8136a27d9d6a.png)
Затем нажимаем «Добавьте Firebase в свое приложение для Android».
![](https://habrastorage.org/r/w1560/files/75a/6f7/aac/75a6f7aaccf645c78321847f452d727b.png)
Название пакета, если вы все делаете по манула: «com.google.firebase.quickstart.fcm».
На втором шаге скачиваем файл google-service.json и добавляем его к проекту.
![](https://habrastorage.org/r/w1560/files/d5a/705/557/d5a705557d3d4d998185d852614c0f7c.png)
Нажимаем готово, зависимости уже добавлены в тестовом проекте.
Шаг 3.
Подготовительная часть закончена, можно нажимать кнопку «Запустить приложение»
В процессе компиляции вы можете получить 2 ошибки:
В этом случае вам нужно зайти в настройки проекта и перезакачать файл google-service.json. Это странный баг, но благо легко лечится.
Вторая ошибка — это:
Тогда вам нужно обновить Google Play Service и Google Repository. Ссылка на Stackoverflow.
После запуска приложения, в Android monitor увидите наш токен. Можно отправляться тестировать. Идем в консоль, ищем наше приложение, и идем в раздел Grow->Notifications:
![](https://habrastorage.org/r/w1560/files/c17/75a/930/c1775a93090e43de91e15d80149da44d.png)
Нажимаем создать сообщение:
![](https://habrastorage.org/r/w1560/files/581/324/088/58132408834740ddbd90fbb00d8c1271.png)
Вводим наши данные, нажимаем отправить и наблюдаем в Android monitor как все пришло.
Теперь к самому интересному
Самый частый вопрос: как поменять иконку уведомления, когда приложение работает в бэкграунде?
Дело в том, что когда приложение находится в бэкграунде, то оно отправляется сразу в Notification center, и функция
не срабатывает.
Чтобы использовать свои иконки уведомлений, вам нужно посылать сообщение через API, через консоль такая кастомизация на данный момент не работает.
UPD: Если вы хотите, чтобы все ваши сообщения даже когда приложение в background или убито, обрабатывались с помощью
в приложении, то отправляйте data-сообщения, т.е. без секции notification
Ссылка на API. Для тестов можно использовать старый-добрый CURL.
Еще одна полезная ссылка
Вот в целом и все, что вам нужно знать чтобы попробовать новые push уведомления.
...GCM users are strongly recommended to upgrade to FCM, in order to benefit from new FCM features today and in the future.
В этой статье мы разберем тестовый проект и рассмотрим один подводный камень связанный с иконкой уведомления.
Нам понадобится:
- Android Studio
- Код демо-проекта с github
- 20 минут свободного времени
Шаг 1.
Скачайте демо-проект и откройте его в своей любимой Android Studio.
Шаг 2.
Теперь нам нужно пойти в Firebase console и добавить наш проект.
![](https://habrastorage.org/files/e9f/27b/ee3/e9f27bee318448cfa4cc8136a27d9d6a.png)
Затем нажимаем «Добавьте Firebase в свое приложение для Android».
![](https://habrastorage.org/files/75a/6f7/aac/75a6f7aaccf645c78321847f452d727b.png)
Название пакета, если вы все делаете по манула: «com.google.firebase.quickstart.fcm».
На втором шаге скачиваем файл google-service.json и добавляем его к проекту.
![](https://habrastorage.org/files/d5a/705/557/d5a705557d3d4d998185d852614c0f7c.png)
Нажимаем готово, зависимости уже добавлены в тестовом проекте.
Шаг 3.
Подготовительная часть закончена, можно нажимать кнопку «Запустить приложение»
В процессе компиляции вы можете получить 2 ошибки:
Missing api_key/current key with Google Services 3.0.0
В этом случае вам нужно зайти в настройки проекта и перезакачать файл google-service.json. Это странный баг, но благо легко лечится.
Вторая ошибка — это:
Failed to resolve: com.google.firebase:firebase-core:9.0.0
Тогда вам нужно обновить Google Play Service и Google Repository. Ссылка на Stackoverflow.
После запуска приложения, в Android monitor увидите наш токен. Можно отправляться тестировать. Идем в консоль, ищем наше приложение, и идем в раздел Grow->Notifications:
![](https://habrastorage.org/files/c17/75a/930/c1775a93090e43de91e15d80149da44d.png)
Нажимаем создать сообщение:
![](https://habrastorage.org/files/581/324/088/58132408834740ddbd90fbb00d8c1271.png)
Вводим наши данные, нажимаем отправить и наблюдаем в Android monitor как все пришло.
Теперь к самому интересному
Самый частый вопрос: как поменять иконку уведомления, когда приложение работает в бэкграунде?
Дело в том, что когда приложение находится в бэкграунде, то оно отправляется сразу в Notification center, и функция
onMessageReceived
не срабатывает.
Чтобы использовать свои иконки уведомлений, вам нужно посылать сообщение через API, через консоль такая кастомизация на данный момент не работает.
UPD: Если вы хотите, чтобы все ваши сообщения даже когда приложение в background или убито, обрабатывались с помощью
onMessageReceived
в приложении, то отправляйте data-сообщения, т.е. без секции notification
Ссылка на API. Для тестов можно использовать старый-добрый CURL.
Еще одна полезная ссылка
Вот в целом и все, что вам нужно знать чтобы попробовать новые push уведомления.