Mit FCM können Sie zwei Arten von Nachrichten an Ihre Client-Apps senden:
- Benachrichtigungen, ähnlich wie "Anzeigenachrichten", werden automatisch vom FCM SDK verarbeitet.
- Datennachrichten, die von der Client-App verarbeitet werden.
Benachrichtigungen enthalten eine vordefinierte Reihe von für Nutzer sichtbaren Schlüsseln und können eine optionale Datennutzlast enthalten. Datennachrichten enthalten dagegen nur benutzerdefinierte Schlüssel/Wert-Paare. Die maximale Nutzlast für beide Nachrichtentypen beträgt 4.096 Byte. Wenn Sie Nachrichten über die Firebase Konsole senden, gilt jedoch ein Limit von 1.000 Zeichen.
| Nutzungsszenario | Senden | |
|---|---|---|
| Benachrichtigung | FCM SDK zeigt die Nachricht auf Endnutzergeräten im Namen der Client-App an, wenn diese 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. Datennachrichten 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 App-Server das
Firebase Admin SDK oder die
HTTP v1 API.
Legen Sie in der Sendeanfrage den data
Schlüssel fest.
|
Sie können Benachrichtigungen verwenden, wenn das FCM SDK eine Benachrichtigung automatisch anzeigen soll, wenn Ihre App im Hintergrund ausgeführt wird. FCM kann eine Benachrichtigung mit einer optionalen Daten nutzlast 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, das Firebase Admin SDK oder die FCM HTTP v1 API senden. Die Firebase Konsole bietet analysenbasierte A/B-Tests, mit denen Sie Ihre Benachrichtigungen optimieren können.
Wenn Sie Benachrichtigungen über die Firebase Admin SDK oder die FCM
HTTP v1 API senden möchten, legen Sie den Schlüssel notification mit der vordefinierten Reihe von Schlüssel/Wert
Optionen der Benachrichtigung fest. Im folgenden Beispiel wird gezeigt, wie Sie eine Benachrichtigung in einer Messaging-App formatieren.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
Benachrichtigungen werden in der Benachrichtigungsleiste zugestellt, wenn die App im Hintergrund ausgeführt wird. Bei Apps im Vordergrund werden Nachrichten von einer Callback-Funktion verarbeitet.
In der Referenzdokumentation zum Benachrichtigungsobjekt der FCM HTTP v1 API finden Sie die vollständige Liste der vordefinierten Schlüssel, die zum Erstellen von Benachrichtigungen verfügbar sind.
Datennachrichten
Sie können selbst entscheiden, wie Sie die FCM-Nutzlast data verwenden möchten, um das Verschlüsselungsschema Ihrer Wahl zu implementieren. Verwenden Sie in Ihren benutzerdefinierten Schlüssel/Wert-Paaren keine reservierten Wörter. Reservierte Wörter sind beispielsweise from, message_type oder
alle Wörter, die mit google., gcm. oder gcm.notification. beginnen.
Im folgenden Beispiel wird die Verwendung des gemeinsamen Datenfelds auf oberster Ebene veranschaulicht, 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 senden, die eine optionale Nutzlast mit benutzerdefinierten Schlüssel/Wert-Paaren enthalten. Das ist programmatisch oder über die Firebase Konsole möglich. Verwenden Sie im Benachrichtigungs-Composer, die Felder Benutzerdefinierte Daten unter Erweiterte Optionen.
Das Verhalten der App beim Empfang von Nachrichten, die sowohl Benachrichtigungs- als auch Daten Nutzlasten enthalten, hängt davon ab, ob sich die App im Hintergrund oder im Vordergrund befindet. Das heißt, ob sie zum Zeitpunkt des Empfangs aktiv ist oder nicht.
- Im Hintergrund empfangen Apps die Benachrichtigungsnutzlast in der Benachrichtigungsleiste und verarbeiten die Datennutzlast erst, 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
notification Schlüssel als auch den data Schlüssel enthält:
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
},
"data" : {
"Nick" : "Mario",
"Room" : "PortugalVSDenmark"
}
}
}