| Wybierz platformę: | iOS+ Android Web Flutter Unity C++ |
Aby otrzymywać wiadomości downstream, każda aplikacja kliencka musi implementować metody interfejsu API firebase::messaging::Listener.
Zainicjuj FCM
Zanim będzie można użyć FCM do uzyskania dostępu do tokena rejestracji lub odbierania wiadomości, należy go zainicjować.
Aby zainicjować FCM, wywołaj ::firebase::messaging::Initialize i podaj obiekt ::firebase::App oraz implementację klasy ::firebase::messaging::Listener.
MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);
Uzyskiwanie dostępu do tokena rejestracji
Przy pierwszym uruchomieniu aplikacji pakiet SDK FCM generuje token rejestracji dla instancji aplikacji klienckiej. Jeśli chcesz kierować reklamy na pojedyncze urządzenia lub tworzyć grupy urządzeń dla 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 otrzymywać 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. Wiadomości są też wysyłane do aplikacji, aby reprezentować zdarzenia wysłania wiadomości, zdarzenia błędu wysyłania wiadomości i zdarzenia usunięcia wiadomości. Te zdarzenia specjalne można rozróżnić, sprawdzając pole Message::message_type.
Wiadomości zostały usunięte
Wysyłany do aplikacji, gdy serwer FCM usuwa oczekujące wiadomości.
Message::message_type będzie kosztować "deleted_messages". Wiadomości mogą zostać usunięte z powodu:
Na serwerze FCM jest przechowywanych zbyt wiele wiadomości.
Może się tak zdarzyć, gdy serwery aplikacji wysyłają wiele wiadomości, których nie można zwinąć, do serwerów FCM, gdy urządzenie jest offline.
Urządzenie nie łączyło się od dłuższego czasu, a serwer aplikacji niedawno (w ciągu ostatnich 4 tygodni) wysłał wiadomość do aplikacji na tym urządzeniu.
Zalecamy, aby po otrzymaniu tego wywołania aplikacja przeprowadziła pełną synchronizację z serwerem aplikacji.