- Android Push notification using FCM (Firebase Cloud Messaging)
- What is FCM ( Firebase Cloud Messaging) ?
- FCM (Firebase Cloud Messaging) Project setup on Firebase Console
- Add FCM (Firebase Cloud Messaging) to Android app
- Send your first notification message
- shaktisinh/android-push-notification-using-fcm
- android-push-notification-using-fcm — Android Push notification using FCM (Firebase Cloud Messaging)
- Techsuzu
- Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих
- Firebase Cloud Messaging
- Обзор
- Firebase облачных сообщений в действии
- Регистрация с помощью FCM
- Подчиненный обмен сообщениями
- Обмен сообщениями с темой
- Настройка Firebase Cloud Messaging
- Дополнительные материалы
- Итоги
Android Push notification using FCM (Firebase Cloud Messaging)
What is FCM ( Firebase Cloud Messaging) ?
Simply we can say FCM ( Firebase Cloud Messaging) is a new version of GCM ( Google Cloud Messaging).
It is a cross-platform messaging solution that lets you reliably deliver messages at no cost. Using FCM, you can send notification messages to drive user re-engagement and retention.
FCM (Firebase Cloud Messaging) Project setup on Firebase Console
Go to Firebase Console and create a new project
One popup will appear. Provide your app name (Project name) and country and click on CREATE PROJECT button
To implement Firebase to your Android app, click on Add Firebase to your Android app
Now enter your project package name and click on ADD APP to register your app
Download google-services.json file and click on CONTINUE button
Now click on FINISH button and complete your project setup on Firebase Console
Add FCM (Firebase Cloud Messaging) to Android app
Copy google-services.json file, go to your Android Project and paste it in app folder.
Go to project level (root level) build.gradle file and add the following code into dependencies
Now go to app level build.gradle file and add the following lines
Sync your project
Now create MyFirebaseInstanceIDService.java class
Now create MyFirebaseMessagingService.java class
Give the INTERNET permission and define both above services into AndroidManifest.xml
Now run your application and check your logcat and you can find TOKEN
Send your first notification message
Go to Firebase Console and click on your project (e.g. FCMDemo)
Now click on Notifications
Now click on SEND YOUR FIRST MESSAGE button
Type your message, select your app and click on SEND MESSAGE button and you will get your first notification on your device.
shaktisinh/android-push-notification-using-fcm
android-push-notification-using-fcm — Android Push notification using FCM (Firebase Cloud Messaging)
If you like this article please like this and subscribe it. If you have any doubt feel free to ask on comment. Follow me on twitter. Your appreciation means lot to me. Thank you.
Techsuzu
App development | Web development | WordPress development |…
Источник
Push уведомления в Android с помощью Firebase Cloud Messaging для начинающих
. 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.
Теперь нам нужно пойти в Firebase console и добавить наш проект.
Затем нажимаем «Добавьте Firebase в свое приложение для Android».
Название пакета, если вы все делаете по манула: «com.google.firebase.quickstart.fcm».
На втором шаге скачиваем файл google-service.json и добавляем его к проекту.
Нажимаем готово, зависимости уже добавлены в тестовом проекте.
Подготовительная часть закончена, можно нажимать кнопку «Запустить приложение»
В процессе компиляции вы можете получить 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:
Нажимаем создать сообщение:
Вводим наши данные, нажимаем отправить и наблюдаем в Android monitor как все пришло.
Теперь к самому интересному
Самый частый вопрос: как поменять иконку уведомления, когда приложение работает в бэкграунде?
Дело в том, что когда приложение находится в бэкграунде, то оно отправляется сразу в Notification center, и функция
Чтобы использовать свои иконки уведомлений, вам нужно посылать сообщение через API, через консоль такая кастомизация на данный момент не работает.
UPD: Если вы хотите, чтобы все ваши сообщения даже когда приложение в background или убито, обрабатывались с помощью
в приложении, то отправляйте data-сообщения, т.е. без секции notification
Ссылка на API. Для тестов можно использовать старый-добрый CURL.
Вот в целом и все, что вам нужно знать чтобы попробовать новые push уведомления.
Источник
Firebase Cloud Messaging
Firebase Cloud Messaging (FCM) — это служба, которая упрощает обмен сообщениями между мобильными приложениями и серверных приложений. В этой статье приводятся общие сведения о том, как работает FCM, и объясняется, как настроить службы Google, чтобы приложение могла использовать FCM.
В этом разделе представлен общий обзор того, как Firebase Cloud Messaging маршрутизирует сообщения между приложением Xamarin. Android и сервером приложений, а также предоставляет пошаговую процедуру для получения учетных данных, чтобы приложение могла использовать службы FCM.
Обзор
Firebase Cloud Messaging (FCM) — это кросс-платформенная служба, которая обрабатывает отправку, маршрутизацию и очередность сообщений между серверными приложениями и мобильными клиентскими приложениями. FCM является преемником Google Cloud Messaging (GCM) и построен на Сервисы Google Play.
Как показано на следующей схеме, FCM выступает в качестве посредника между отправителями и клиентами сообщений. Клиентское приложение — это приложение с поддержкой FCM, которое выполняется на устройстве. Сервер приложений (предоставленный вами или вашей организацией) — это сервер с поддержкой FCM, с которым клиентское приложение взаимодействует с помощью FCM. В отличие от GCM, FCM позволяет отправлять сообщения в клиентские приложения непосредственно через графический интерфейс уведомлений консоли Firebase:
С помощью FCM серверы приложений могут передавать сообщения на одно устройство, в группу устройств или на несколько устройств, подписанных на раздел. Клиентское приложение может использовать FCM для подписки на подчиненные сообщения с сервера приложений (например, для получения удаленных уведомлений). Дополнительные сведения о различных типах сообщений Firebase см. в разделе About FCM messages.
Firebase облачных сообщений в действии
Когда в клиентское приложение отправляется подчиненное сообщение с сервера приложений, сервер приложений отправляет сообщение на сервер подключения FCM , предоставленный Google; сервер подключения FCM, в свою очередь, перенаправляет сообщение на устройство, на котором выполняется клиентское приложение. Сообщения можно отправлять по протоколу HTTP или XMPP (расширенный протокол обмена сообщениями и протокола присутствия). Поскольку клиентские приложения не всегда подключены или выполняются, сервер подключения FCM ставит в очередь и сохраняет сообщения, отправляя их в клиентские приложения при повторном подключении и доступности. Аналогичным образом FCM помещает в очередь вышестоящее сообщение от клиентского приложения к серверу приложений, если сервер приложений недоступен. Дополнительные сведения о серверах подключения FCM см. в разделе о Firebase Cloud Messaging Server.
FCM использует следующие учетные данные для указания сервера приложений и клиентского приложения и использует эти учетные данные для авторизации транзакций сообщений через FCM:
— идентификатор отправителя — это уникальное числовое значение, которое назначается при создании проекта Firebase. Идентификатор отправителя используется для идентификации каждого сервера приложений, который может передавать сообщения в клиентское приложение. Идентификатор отправителя также является номером вашего проекта; При регистрации проекта вы получаете идентификатор отправителя из консоли Firebase. Примером идентификатора отправителя является 496915549731 .
— ключ API предоставляет серверу приложений доступ к службам Firebase Services; FCM использует этот ключ для проверки подлинности сервера приложений. Эти учетные данные также называются ключом сервера или ключом веб-API. Примером ключа API является AJzbSyCTcpfRT1YRqbz-jIwp1h06YdauvewGDzk .
— удостоверение клиентского приложения (независимо от любого конкретного устройства), которое регистрируется для получения сообщений от FCM. Пример идентификатора приложения: 1:415712510732:android:0e1eb7a661af2460 .
— токен регистрации (также называемый идентификатором экземпляра) является FCM удостоверением клиентского приложения на заданном устройстве. Маркер регистрации создается во время выполнения — приложение получает маркер регистрации при первой регистрации в FCM при выполнении на устройстве. Маркер регистрации авторизует экземпляр клиентского приложения (выполняющегося на этом конкретном устройстве) для получения сообщений от FCM. Примером маркера регистрации является fkBQTHxKKhs:AP91bHuEedxM4xFAUn0z . JKZS (очень длинная строка).
Настройка Firebase Cloud Messaging (далее в этом пошаговом окне) содержит подробные инструкции по созданию проекта и созданию этих учетных данных. При создании нового проекта в консоли Firebaseсоздается файл учетных данных Google-Services. JSON — этот файл добавляется в проект Xamarin. Android, как описано в разделах Удаленные уведомления с помощью FCM.
В следующих разделах объясняется, как эти учетные данные используются при взаимодействии клиентских приложений с серверами приложений через FCM.
Регистрация с помощью FCM
Клиентское приложение должно сначала зарегистрироваться в FCM до того, как система обмена сообщениями может быть выполнена. Клиентское приложение должно выполнить действия по регистрации, показанные на следующей схеме:
Клиентское приложение обращается к FCM, чтобы получить маркер регистрации, передав идентификатор отправителя, ключ API и идентификатор приложения в FCM.
FCM возвращает маркер регистрации клиентскому приложению.
Клиентское приложение (необязательно) перенаправляет маркер регистрации на сервер приложений.
Сервер приложений кэширует маркер регистрации для последующего взаимодействия с клиентским приложением. Сервер приложений может отправить подтверждение обратно в клиентское приложение, чтобы указать, что получен маркер регистрации. После выполнения этого подтверждения клиентское приложение может получать сообщения от сервера приложений (или отправлять сообщения на него). Клиентское приложение может получить новый маркер регистрации, если старый маркер скомпрометирован (см. раздел Удаленные уведомления с помощью FCM в качестве примера того, как приложение получает обновления маркера регистрации).
Когда клиентскому приложению больше не требуется получать сообщения с сервера приложений, оно может отправить запрос на сервер приложений для удаления маркера регистрации. Если клиентское приложение удалено с устройства, FCM обнаруживает это и автоматически уведомляет сервер приложений об удалении маркера регистрации.
Подчиненный обмен сообщениями
На следующей схеме показано, как Firebase облачные службы обмена сообщениями сохраняют и пересылает нисходящие сообщения:
Когда сервер приложений отправляет в клиентское приложение подчиненное сообщение, он выполняет следующие действия, как перечислено на приведенной выше схеме.
Сервер приложений отправляет сообщение в FCM.
Если клиентское устройство недоступно, сервер FCM сохраняет сообщение в очереди для последующей передачи. Сообщения хранятся в хранилище FCM не более 4 недель (Дополнительные сведения см. в разделе Установка срока существования сообщения).
Когда клиентское устройство доступно, FCM перенаправляет сообщение клиентскому приложению на этом устройстве.
Клиентское приложение получает сообщение от FCM, обрабатывает его и отображает для пользователя. Например, если сообщение представляет собой удаленное уведомление, оно будет представлено пользователю в области уведомлений.
В этом сценарии обмена сообщениями (где сервер приложений отправляет сообщение в одно клиентское приложение) размер сообщений может доставлять до 4 КБ.
Подробные сведения о получении подчиненных сообщений FCM в Android см. в разделе Удаленные уведомления с помощью FCM.
Обмен сообщениями с темой
Обмен сообщениями с разделами позволяет серверу приложений отправить сообщение на несколько устройств, участвующих в определенном разделе. Вы также можете создавать и отправлять сообщения раздела с помощью графического интерфейса уведомлений консоли Firebase. FCM обрабатывает маршрутизацию и доставку сообщений раздела клиентам, подписавшимся на них. Эта функция может использоваться для таких сообщений, как оповещения о погоде, котировки котировок и заголовки новостей.
Следующие шаги используются в разделе Обмен сообщениями (после того, как клиентское приложение получит маркер регистрации, как описано выше):
Клиентское приложение подписывается на раздел, отправляя сообщение подписки в FCM.
Сервер приложений отправляет сообщения раздела в FCM для распространения.
FCM пересылает сообщения раздела клиентам, которые подписались на этот раздел.
Дополнительные сведения о сообщениях в разделе Firebase см. в разделе Обмен сообщениями Google в Android.
Настройка Firebase Cloud Messaging
Прежде чем можно будет использовать службы FCM в приложении, необходимо создать новый проект (или импортировать существующий проект) через консоль Firebase. Чтобы создать Firebase облачный проект обмена сообщениями для приложения, выполните следующие действия.
Войдите в консоль Firebase , используя учетную запись Google (т. е. адрес Gmail), и щелкните создать новый проект:
Если у вас уже есть проект, щелкните Импорт проекта Google.
В диалоговом окне Создание проекта введите имя проекта и нажмите кнопку создать проект. В следующем примере создается новый проект с именем ксамаринфкм :
В разделе Обзорконсоли Firebase щелкните Добавить Firebase в приложение Android:
На следующем экране введите имя пакета приложения. В этом примере имя пакета — com. Xamarin. фкмексампле. Это значение должно совпадать с именем пакета приложения Android. Псевдоним приложения также можно указать в поле псевдонима приложения :
Если приложение использует динамические ссылки, приглашения или Google AUTH, необходимо также ввести сертификат для подписи отладки. Дополнительные сведения о поиске сертификата для подписи см. в разделе Поиск подписи MD5 или SHA1. В этом примере сертификат подписи остается пустым.
Щелкните Добавить приложение:
Для приложения автоматически создаются ключ API сервера и идентификатор клиента. Эти сведения упаковываются в файл Google-Services. JSON , который автоматически загружается при нажатии кнопки Добавить приложение. Не забудьте сохранить этот файл в надежном месте.
Подробный пример добавления Google-Services. JSON в проект приложения для получения сообщений push-уведомлений FCM на устройстве Android см. в статье Удаленные уведомления с помощью FCM.
Дополнительные материалы
Облачная система обмена сообщениями Google Firebase предоставляет общие сведения о ключевых возможностях Firebase облачных сообщений, описание его работы и инструкции по установке.
Запросы на отправку приложений Google Build Server посвящены отправке сообщений с сервера приложений.
Rfc 6120 и RFC 6121 объясняют и определяют расширяемый протокол обмена сообщениями и присутствия (XMPP).
О сообщениях FCM описывает различные типы сообщений, которые можно отправить с помощью Firebase Cloud Messaging.
Итоги
В этой статье представлен обзор Firebase Cloud Messaging (FCM). В нем объясняются различные учетные данные, используемые для обнаружения и авторизации обмена сообщениями между серверами приложений и клиентскими приложениями. В нем проиллюстрированы сценарии регистрации и подчиненных сообщений, а также подробно описаны действия по регистрации приложения в FCM для использования служб FCM.
Источник