Die Serverseite von Firebase Cloud Messaging besteht aus zwei Komponenten:
- Das von Google bereitgestellte FCM-Backend.
- Ihr App-Server oder eine andere vertrauenswürdige Serverumgebung, in der Ihre Serverlogik ausgeführt wird, z. B. Cloud Functions for Firebase oder andere von Google verwaltete Cloud-Umgebungen.
Ihr App-Server oder Ihre vertrauenswürdige Serverumgebung sendet Nachrichtenanfragen an das FCM-Backend, das Nachrichten dann an Client-Apps weiterleitet, die auf den Geräten der Nutzer ausgeführt werden.
Anforderungen an die vertrauenswürdige Serverumgebung
Die Serverumgebung Ihrer App muss die folgenden Kriterien erfüllen:
- Kann korrekt formatierte Nachrichtenanfragen an das FCM-Backend senden.
- Anfragen verarbeiten und mit exponentiellem Backoff noch einmal senden können.
- Serverautorisierungsanmeldedaten und Clientregistrierungstokens sicher speichern können.
Erforderliche Anmeldedaten für Firebase-Projekt
Je nachdem, welche FCM-Funktionen Sie implementieren, benötigen Sie möglicherweise die folgenden Anmeldedaten aus Ihrem Firebase-Projekt:
Anmeldedaten | Beschreibung |
---|---|
Projekt-ID | Eine eindeutige Kennung für Ihr Firebase-Projekt, die in Anfragen an den FCM v1-HTTP-Endpunkt verwendet wird. Dieser Wert ist im Bereich Firebase-Konsole Einstellungen verfügbar. |
Registrierungstoken | Ein eindeutiger Token-String, der jede Client-App-Instanz identifiziert. Das Registrierungstoken ist für das Messaging an einzelne Geräte und Gerätegruppen erforderlich. Registrierungstokens müssen geheim gehalten werden. |
Sender-ID | Ein eindeutiger numerischer Wert, der beim Erstellen Ihres Firebase-Projekts generiert wird. Sie finden ihn in der Cloud Messaging-Registerkarte des Firebase-Konsolenbereichs Einstellungen. Die Absender-ID entspricht der Projektnummer. Die Absender-ID wird verwendet, um jeden Absender zu identifizieren, der Nachrichten an die Client-App senden kann. |
Zugriffstoken | Ein kurzlebiges OAuth 2.0-Token, das Anfragen an die HTTP v1-API autorisiert. Dieses Token ist mit einem Dienstkonto verknüpft, das zu Ihrem Firebase-Projekt gehört. Folgen Sie der Anleitung unter Send-Anfragen autorisieren, um Zugriffstokens zu erstellen und zu rotieren. |
Serveroption auswählen
Sie müssen entscheiden, wie Sie mit FCM-Servern interagieren möchten: entweder über die Firebase Admin SDK oder über die FCM HTTP v1 API. Da die Firebase Admin SDK beliebte Programmiersprachen unterstützt und praktische Methoden für die Authentifizierung und Autorisierung bietet, ist sie die empfohlene Methode.
Folgende Optionen stehen für die Interaktion mit FCM-Servern zur Verfügung:
Das Firebase Admin SDK unterstützt Node, Java, Python, C# und Go.
Die FCM HTTP v1 API, eine REST API mit sicherer Autorisierung und flexiblen plattformübergreifenden Messaging-Funktionen (die Firebase Admin SDK basiert auf diesem Protokoll und bietet alle damit verbundenen Vorteile).
Firebase Admin SDK
Das Firebase Admin SDK übernimmt die Authentifizierung beim Backend und erleichtert das Senden von Nachrichten und die Verwaltung von Themenabos. Mit der Firebase Admin SDK haben Sie folgende Möglichkeiten:
- Nachrichten an einzelne Geräte senden
- Nachrichten an Themen und Bedingungsanweisungen senden, die mit einem oder mehreren Themen übereinstimmen
- Nachrichten an Gerätegruppen senden
- Geräte für Themen abonnieren und Abo beenden
- Nachrichtennutzlasten für verschiedene Zielplattformen erstellen
Informationen zum Einrichten von Firebase Admin SDK finden Sie unter Firebase Admin SDK auf Ihrem Server hinzufügen. Wenn Sie bereits ein Firebase-Projekt haben, beginnen Sie mit SDK hinzufügen. Achten Sie außerdem darauf, dass die Firebase Cloud Messaging API (V1) in den Cloud Messaging-Einstellungen für Ihr Projekt aktiviert ist. Sobald das Firebase Admin SDK installiert ist, können Sie mit dem Schreiben von Logik zum Erstellen von Sendeanfragen beginnen.
FCM HTTP v1 API
FCM bietet die FCM HTTP v1-API für Entwickler, die ein Raw-Serverprotokoll bevorzugen.
Um eine Nachricht zu senden, stellt der App-Server eine POST-Anfrage mit einem HTTP-Header und einem HTTP-Text, der aus JSON-Schlüssel/Wert-Paaren besteht. Weitere Informationen zu den Header- und Body-Optionen finden Sie unter Nachricht mit der FCM-HTTP-API v1 senden.