Odbieranie wiadomości za pomocą Komunikacji w chmurze Firebase

Z tego przewodnika dowiesz się, jak skonfigurować Firebase Cloud Messaging w aplikacjach klienckich na urządzenia mobilne i w internecie, aby niezawodnie odbierać wiadomości.

Aby otrzymywać wiadomości wysyłane do klienta, każda aplikacja kliencka musi zaimplementować metody interfejsu firebase::messaging::Listener API.

Zainicjuj FCM

Zanim zaczniesz używać FCM do uzyskiwania dostępu do tokena rejestracji lub odbierania wiadomości, musisz go zainicjować.

Aby zainicjować FCM, wywołaj funkcję ::firebase::messaging::Initialize i przekaż do niej obiekt ::firebase::App oraz implementację klasy ::firebase::messaging::Listener.

MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);

Dostęp do tokena rejestracji

Podczas pierwszego uruchomienia aplikacji pakiet SDK FCM generuje token rejestracyjny dla instancji aplikacji klienta. Jeśli chcesz kierować reklamy na pojedyncze urządzenia lub tworzyć grupy urządzeń na potrzeby FCM, musisz uzyskać dostęp do tego tokena.

Wartość tokena możesz uzyskać za pomocą funkcji wirtualnej ::firebase::messaging::Listener::OnTokenReceived.

void OnTokenReceived(const char* token) {
  LogMessage("The registration token is `%s`", token);

  // TODO: If necessary send token to application server.
}

Odbieranie i obsługiwanie wiadomości

Aby odbierać wiadomości, klasa Listener musi implementować funkcję wirtualną OnMessage.

Zastąp OnMessage

Zastępując metodę ::firebase::messaging::Listener::OnMessage, możesz wykonywać działania na podstawie otrzymanej wiadomości i pobierać dane wiadomości:

void OnMessage(const ::firebase::messaging::Message& message) {
  LogMessage(TAG, "From: %s", message.from.c_str());
  LogMessage(TAG, "Message ID: %s", message.message_id.c_str());
}

Wiadomości mogą reprezentować różne rodzaje danych przychodzących. Najczęściej wiadomości są wysyłane do aplikacji po zainicjowaniu przez dewelopera. Do aplikacji są też wysyłane wiadomości reprezentujące zdarzenia wysłania wiadomości, zdarzenia błędów wysyłania wiadomości i zdarzenia usunięcia wiadomości. Te specjalne zdarzenia można odróżnić, sprawdzając pole Message::message_type.

Usunięto wiadomości

Wysyłane do aplikacji, gdy serwer FCM usuwa oczekujące wiadomości. Message::message_type będzie mieć wartość "deleted_messages". Wiadomości mogą zostać usunięte z tych powodów:

  1. Na serwerze FCM jest przechowywanych zbyt wiele wiadomości.

    Może się to zdarzyć, gdy serwery aplikacji wysyłają wiele niezwijanych wiadomości na serwery FCM, gdy urządzenie jest offline.

  2. Urządzenie nie było połączone z internetem od dłuższego czasu, a serwer aplikacji niedawno (w ciągu ostatnich 4 tygodni) wysłał do aplikacji na tym urządzeniu wiadomość.

    Zalecamy, aby po otrzymaniu tego wywołania aplikacja przeprowadziła pełną synchronizację z serwerem aplikacji.