Wiadomość
Cloud Messaging
(FCM
) dostarcza wiadomości do wybranych użytkowników aplikacji wysłanych z poziomu konsoli Firebase
, usługi Cloud Functions
lub zewnętrznego serwera. Wiadomości dzielą się na dwa typy: automatycznie wyświetlane notyfikacje oraz ręcznie obsługiwane wiadomości danych. W przypadku notyfikacji, gdy aplikacja jest w tle powiadomienia dostarczane są do zasobnika powiadomień, a kiedy działa na pierwszym planie wówczas obsługiwana jest przez funkcję zwrotną. Wiadomości mogą przyjmować format JSON
i muszą zawierać polę message
, składające się z pola message.token
oraz message.notification
(dla notyfikacji) lub data
(dla wiadomości danych). Wiadomości mogą zawierać także jednocześnie oba pola: notification
i data
.
Wiadomości konfigurowane pod różne platformy (Android
, iOS
, web
) powinny przestrzegać zasad dostępności kluczy. Jeśli wiadomość kierowana jest do wielu platform wówczas należy używać kluczy ogólnych (notification
, data
, notification.title
, notification.body
), a w przypadku wysyłania tylko na jedną platformę należy wskazać typ (android
, apns
, webpush
) i wykorzystać specyficzne klucze danej platformy (dla Android
m.in. ttl
, priority
, data
, notification
).
Usługa
Aby przetwarzać przychodzące wiadomości należy rozszerzyć klasę FirebaseMessagingService
, zarejestrować usługę oraz dodać opcjonalne informacje w pliku AndroidManifest
. Usługa FirebaseMessagingService
odpowiedzialna jest za nasłuchiwanie i podejmowanie akcji dla otrzymanych wiadomości i przyznanego kodu token
.
Token
Kluczem identyfikującym użytkownika w usłudze Cloud Messaging
jest token
, który przyznany przez aplikację powinien zostać wysłany na serwer dzięki czemu możliwym będzie rozpoznanie adresatów wiadomości. Warto mieć na uwadzę, że token może ulec zmianie m.in. w sytuacji usunięcia aplikacji czy wyczyszczenia danych w związku z czym należy rejestrować jego zmiany w metodzie onNewToken
. Aby ręcznie pobrać bieżący token należy wywołać FirebaseInstanceId.getInstance().instanceId
.
Odbieranie
Zarządzanie otrzymanymi i usuniętymi wiadomościami możliwe jest przez nadpisanie metod onMessageReceived
i onDeletedMessages
. Metoda onMessageReceived
dostarcza obsługi dla większości typów wiadomości za wyjątkiem wiadomości notyfikacji otrzymanych podczas działania aplikacji w tle, które trafiają do zasobnika systemowego. Domyślnie kliknięcie na notyfikacje powoduje uruchomienie launcher
aplikacji, a opcjonalne dane z pola data
zawarte są w kluczach extras
obiektu Intent
.
Grupowanie
Wiadomości mogą być wysyłane do grupy użytkowników na podstawie informacji przypisanych do konta, zapisanych do tematu (topic
) lub należących do grupy urządzeń. W celu zapisania i wypisania klienta do tematu należy wywołać metodę subscribeToTopic
lub unsubscribeFromTopic
.
Komunikaty w aplikacji
Usługa In-App Messaging
pozwala na przedstawianie ukierunkowanych wiadomości kontekstowych w aplikacji w postaci banerów dla aktualnie aktywnych użytkowników w celu zachęcenia ich do podjęcia dodatkowych działań czy odkrywania nowych obszarów i funkcjonalności. Aby rozpocząć wysyłanie komunikatów z poziomu konsoli Firebase
wystarczy wskazać docelową grupę odbiorców (np. na podstawie prognoz czy testów A/B), skonfigurować wygląd wiadomości i wyzwalacze oraz podpiąć akcje w postaci dynamicznych linków
(Dynamic Links
) i dodać ich obsługę po stronie aplikacji. W przypadku modyfikacji sposobu wyświetlania wiadomości należy stworzyć i zarejestrować autorską implementację klasy rozszerzającej FirebaseInAppMessagingDisplay
.