Mit FCM können Sie zwei Arten von Nachrichten an Ihre Client-Apps senden:
- Benachrichtigungen, ähnlich wie „Anzeigenachrichten“, werden vom FCM SDK automatisch verarbeitet. (Verwenden Sie unter Android mit
AndroidConfigV2RemoteNotificationfür alle Nachrichten, die eine für den Nutzer sichtbare Benachrichtigung anzeigen, damit sie ohne beabsichtigte Verzögerung zugestellt werden. Benachrichtigungen werden automatisch angezeigt, unabhängig davon, ob sich die App im Vordergrund oder im Hintergrund befindet, es sei denn, sie werden im Clientcode explizit stummgeschaltet.) - Daten-Nachrichten, die von der Client-App verarbeitet werden.
Benachrichtigungen enthalten einen vordefinierten Satz von für Nutzer sichtbaren Schlüsseln und können eine optionale Datennutzlast enthalten. Datennachrichten enthalten dagegen nur Ihre benutzerdefinierten Schlüssel/Wert-Paare. Die maximale Nutzlast für beide Nachrichtentypen beträgt 4.096 Byte, außer beim Senden von Nachrichten über die Firebase-Konsole, die eine Zeichenbeschränkung auf 1.000 Zeichen erzwingt.
| Anwendungsszenario | So sendest du Nachrichten | |
|---|---|---|
| Benachrichtigung | Das FCM SDK zeigt die Mitteilung im Namen der Client-App auf Endnutzergeräten an, wenn die App im Hintergrund ausgeführt wird. Wenn die App im Vordergrund ausgeführt wird, wenn die Benachrichtigung eingeht, wird das Verhalten durch den Code der App bestimmt. |
|
| Datennachricht | Die Client-App ist für die Verarbeitung von Datennachrichten verantwortlich. Daten-Nachrichten enthalten nur benutzerdefinierte Schlüssel/Wert-Paare ohne reservierte Schlüsselnamen (siehe unten). | Verwenden Sie in einer vertrauenswürdigen Umgebung wie
Cloud Functions
oder Ihrem Anwendungsserver die Firebase Admin SDK oder die HTTP v1 API.
Legen Sie in der Sendeanfrage den Schlüssel data fest.
|
Sie können Benachrichtigungen verwenden, wenn das FCM SDK automatisch eine Benachrichtigung anzeigen soll, wenn Ihre App im Hintergrund ausgeführt wird. FCM kann eine Benachrichtigung mit einer optionalen Datennutzlast senden. In solchen Fällen zeigt FCM die Benachrichtigungsnutzlast an und die Client-App verarbeitet die Datennutzlast.
Sie können Datennachrichten verwenden, wenn Sie die Nachrichten mit Ihrem eigenen Client-App-Code verarbeiten möchten.
Benachrichtigungen
Sie können Benachrichtigungen über die Firebase-Konsole, die Firebase Admin SDK oder die FCM HTTP v1 API senden. Die Firebase-Konsole bietet analysebasierte A/B-Tests, mit denen Sie Ihre Benachrichtigungen optimieren und verbessern können.
Wenn Sie Benachrichtigungen mit der Firebase Admin SDK oder der FCM HTTP v1 API senden möchten, legen Sie den Schlüssel notification mit den vordefinierten Schlüssel/Wert-Optionen der Benachrichtigung fest. Anhand des folgenden Beispiels können Sie eine Benachrichtigung in einer IM-Anwendung formatieren.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
Benachrichtigungen werden in der Benachrichtigungsleiste angezeigt, wenn die App im Hintergrund ausgeführt wird. Bei Apps im Vordergrund werden Nachrichten von einer Callback-Funktion verarbeitet.
Eine vollständige Liste der vordefinierten Schlüssel, die zum Erstellen von Benachrichtigungen verfügbar sind, finden Sie in der Referenzdokumentation zum FCM HTTP v1 API-Benachrichtigungsobjekt.
Datennachrichten
Es liegt bei dir, wie du die FCM-Nutzlast data verwendest, um das Verschlüsselungsschema deiner Wahl zu implementieren. Achten Sie darauf, dass Sie in Ihren benutzerdefinierten Schlüssel/Wert-Paaren keine reservierten Wörter verwenden. Zu den reservierten Wörtern gehören from, message_type oder jedes Wort, das mit google., gcm. oder gcm.notification. beginnt.
Das folgende Beispiel zeigt die Verwendung des allgemeinen Datenfelds auf oberster Ebene, das von Clients auf allen Plattformen interpretiert wird, die die Nachricht empfangen. Auf jeder Plattform empfängt die Client-App die Datennutzlast in einer Callback-Funktion.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}
Benachrichtigungen mit optionaler Datennutzlast
Sie können Benachrichtigungen, die eine optionale Nutzlast mit benutzerdefinierten Schlüssel/Wert-Paaren enthalten, programmatisch oder über die Firebase Console senden. Verwenden Sie im Benachrichtigungs-Composer die Felder für Benutzerdefinierte Daten unter Erweiterte Optionen.
Das Verhalten der App beim Empfang von Nachrichten, die sowohl Benachrichtigungs- als auch Datennutzlasten enthalten, hängt davon ab, ob die App im Hintergrund oder im Vordergrund ausgeführt wird, also ob sie zum Zeitpunkt des Empfangs aktiv ist oder nicht.
- Im Hintergrund erhalten Apps die Benachrichtigungsnutzlast in der Benachrichtigungsleiste und verarbeiten die Datennutzlast nur, wenn der Nutzer auf die Benachrichtigung tippt.
- Im Vordergrund empfängt Ihre App ein Nachrichtenobjekt, in dem beide Nutzlasten verfügbar sind.
Hier ist eine JSON-formatierte Nachricht, die sowohl den Schlüssel notification als auch den Schlüssel data enthält:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}