| Plattform auswählen : | iOS+ Android Web Flutter Unity C++ |
Damit Client-Apps Downstream-Nachrichten empfangen können, müssen sie die Methoden
der
firebase::messaging::Listener
API implementieren.
FCM initialisieren
Bevor Sie FCM verwenden können, um auf Ihr Registrierungstoken zuzugreifen oder Nachrichten zu empfangen, muss es initialisiert werden.
Rufen Sie dazu FCMauf
::firebase::messaging::Initialize
und geben Sie Ihr ::firebase::App
Objekt sowie eine Implementierung der
::firebase::messaging::Listener
Klasse an.
MyListener my_listener_implementation;
::firebase::messaging::Initialize(app, &my_listener_implementation);
Auf das Registrierungstoken zugreifen
Beim ersten Start Ihrer App generiert das FCM SDK ein Registrierungs token für die Client-App-Instanz. Wenn Sie einzelne Geräte ansprechen oder Gerätegruppen für FCM erstellen möchten, müssen Sie auf dieses Token zugreifen.
Sie können den Wert des Tokens über die
::firebase::messaging::Listener::OnTokenReceived
virtuelle Funktion abrufen.
void OnTokenReceived(const char* token) {
LogMessage("The registration token is `%s`", token);
// TODO: If necessary send token to application server.
}
Nachrichten empfangen und verarbeiten
Damit Ihre Listener-Klasse Nachrichten empfangen kann, muss sie die
OnMessage
virtuelle Funktion implementieren.
OnMessage überschreiben
Wenn Sie die Methode ::firebase::messaging::Listener::OnMessage,
überschreiben, können Sie Aktionen basierend auf der empfangenen Nachricht ausführen und die Nachrichtendaten abrufen:
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());
}
Nachrichten können verschiedene Arten von eingehenden Daten darstellen. In den meisten Fällen werden Nachrichten an die App gesendet, nachdem sie vom Entwickler initiiert wurden. Nachrichten werden auch an Ihre App gesendet, um Ereignisse wie „Nachricht gesendet“, „Fehler beim Senden der Nachricht“ und „Nachrichten gelöscht“ darzustellen. Diese speziellen Ereignisse können durch Überprüfen des Felds Message::message_type unterschieden werden.
Nachrichten gelöscht
Wird an Ihre App gesendet, wenn der FCM Server ausstehende Nachrichten löscht.
Message::message_type ist dann "deleted_messages". Nachrichten können aus folgenden Gründen gelöscht werden:
Zu viele Nachrichten auf dem FCM Server gespeichert.
Das kann passieren, wenn die Server einer App eine Reihe von nicht reduzierbaren Nachrichten an FCM Server senden, während das Gerät offline ist.
Das Gerät hat sich seit längerer Zeit nicht mehr verbunden und der App-Server hat vor Kurzem (in den letzten vier Wochen) eine Nachricht an die App auf diesem Gerät gesendet.
Es wird empfohlen, dass die App nach dem Empfang dieses Aufrufs eine vollständige Synchronisierung mit dem App-Server durchführt.