Firebase Cloud Messaging-Nachrichtentypen

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.
  1. 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 den Schlüssel notification fest. Kann eine optionale Datennutzlast enthalten. Immer minimierbar.

    Hier finden Sie einige Beispiele für Anzeigenachrichten und Nutzlasten von Sendeanfragen.

  2. Verwenden Sie den Benachrichtigungs-Composer: Geben Sie den Nachrichtentext, den Titel usw. ein und senden Sie die Nachricht. Fügen Sie eine optionale Datennutzlast hinzu, indem Sie benutzerdefinierte Daten angeben.
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"
    }
  }
}