FCM-Architektur – Übersicht

FCM basiert auf den folgenden Komponenten, die Nachrichten erstellen, übertragen und empfangen:

  1. Tools zum Erstellen von Nachrichtenanfragen. Der Benachrichtigungs-Composer bietet eine GUI-basierte Option zum Erstellen von Benachrichtigungsanfragen. Für die vollständige Automatisierung und Unterstützung aller Nachrichtentypen müssen Sie Nachrichtenanfragen in einer vertrauenswürdigen Serverumgebung erstellen, die das Firebase Admin SDK oder das FCM-Serverprotokoll unterstützt. Diese Umgebung kann Cloud Functions für Firebase, App Engine oder Ihr eigener App-Server sein.

    Ein Diagramm der drei Architekturschichten, die auf dieser Seite beschrieben werden.

  2. Das FCM-Backend, das (unter anderem) Nachrichtenanfragen akzeptiert, Nachrichten über Themen verteilt und Nachrichtenmetadaten wie die Nachrichten-ID generiert.

  3. Eine Transportebene auf Plattformebene, die die Nachricht an das Zielgerät weiterleitet, die Nachrichtenzustellung übernimmt und bei Bedarf plattformspezifische Konfigurationen anwendet. Diese Transportschicht umfasst:

    • Android Transport Layer (ATL) für Android-Geräte mit Google Play-Diensten
    • Apple Push Notification Service (APNs) für Apple-Geräte
    • Web-Push-Protokoll für Web-Apps

  4. Das FCM SDK auf dem Gerät des Nutzers, auf dem die Benachrichtigung angezeigt oder die Nachricht entsprechend dem Vordergrund-/Hintergrundstatus der App und der relevanten Anwendungslogik verarbeitet wird.

Lebenszyklus

  • Geräte registrieren, um Nachrichten von FCM zu empfangen. Eine Instanz einer Client-App registriert sich, um Nachrichten zu empfangen, und erhält ein Registrierungstoken, das die App-Instanz eindeutig identifiziert.
  • Downstream-Nachrichten senden und empfangen:
    • Nachricht senden Der App-Server sendet Nachrichten an die Client-App:
      1. Die Nachricht wird entweder im Benachrichtigungs-Composer oder in einer vertrauenswürdigen Umgebung verfasst und eine Nachrichtenanfrage wird an das FCM-Backend gesendet.
      2. Das FCM-Backend empfängt die Nachrichtenanfrage, generiert eine Nachrichten-ID und andere Metadaten und sendet sie an die plattformspezifische Transportschicht.
      3. Wenn das Gerät online ist, wird die Nachricht über die plattformspezifische Transportschicht an das Gerät gesendet.
      4. Die Client-App empfängt die Nachricht oder Benachrichtigung auf dem Gerät.