Firebase Cloud Messaging (FCM) mit chrome.gcm verwenden

Mit chrome.gcm können Sie Nachrichten an Endnutzer senden und von ihnen empfangen. Da es auf Firebase Cloud Messaging (FCM) basiert, ist es ein externer Dienst, den Sie einrichten müssen. In dieser Anleitung werden Sie durch alle Schritte geführt, die erforderlich sind, damit das Tool in Ihrer Erweiterung funktioniert.

chrome.gcm wird zwar weiterhin unterstützt, wurde aber vor über einem Jahrzehnt vor dem Push-Standard erstellt. Im Allgemeinen empfiehlt es sich, den Webstandard und keine erweiterungsspezifische API zu verwenden. Sofern Sie chrome.gcm nicht unbedingt verwenden müssen, empfehlen wir die Verwendung von Push.

Voraussetzungen

Damit Sie chrome.gcm verwenden können, müssen Sie ein Firebase-Konto einrichten.

Firebase.com-Startseite.
Firebase.com-Startseite

Sobald Sie ein Konto erstellt haben, können Sie die Firebase Console öffnen und ein vorhandenes Projekt auswählen oder ein neues für die Erweiterung erstellen.

Screenshot der Projekteinträge in der Firebase Console
Projekteinträge in der Firebase Console

Fahren Sie mit der Einstellungsseite für Cloud Messaging fort.

Screenshot einer Firebase Cloud Messaging-Einstellungsseite
Seite mit den Firebase Cloud Messaging-Einstellungen

Wenn Sie in diesem Projekt bereits ein Cloud-Messaging-Konto haben, können Sie die aufgeführte numerische Sender-ID kopieren.

Wenn Cloud Messaging nicht aktiviert ist, müssen Sie die Firebase Cloud Messaging API für das Projekt in Google Cloud aktivieren. In der folgenden Abbildung sehen Sie, wo in den Firebase-Einstellungen ein direkter Link zu dieser Seite vorhanden ist.

Screenshot des Speicherorts des Links zum Aktivieren der Firebase Messaging API in Google Cloud
Link zu Google Cloud-Einstellungen in Firebase öffnen

Kehren Sie nach der Aktivierung zur Einstellungsseite für Cloud Messaging zurück und kopieren Sie die Sender-ID.

chrome.gcm konfigurieren

Da Sie nun Ihre Sender-ID von Firebase haben, können Sie die Erweiterung so konfigurieren, dass sie Nachrichten abhört. Prüfe zuerst, ob du dem manifest.json deiner Erweiterung die Berechtigung gcm hinzugefügt hast

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

Sie haben jetzt Zugriff auf die chrome.gcm API. Sie können sich registrieren, um Push-Nachrichten zu überwachen, indem Sie chrome.gcm.register aufrufen.

Auf Nachrichten achten

Sobald die Erweiterung Ihre Sender-ID registriert hat, müssen Sie Code hinzufügen, um eingehende Nachrichten zu verarbeiten.

Firebase ohne Firebase

Obwohl chrome.gcm immer Firebase durchläuft, kann Firebase so konfiguriert werden, dass es als Proxy für externe Push-Messaging-Anbieter fungiert. In der Regel geben Anbieter die Unterstützung für Chrome-Erweiterungen explizit an. Es sollte aber jeder Anbieter funktionieren, der Legacy-Push-Benachrichtigungen von Firebase unterstützt. Wenn Ihr Anbieter Unterstützung für Legacy-Push-Benachrichtigungen von Firebase anbietet, probieren Sie es aus. Wenn Probleme auftreten, sollte der Support des Anbieters alle eventuellen Einschränkungen klären können.

In Kanälen und Themen

chrome.gcm verwendet die alten Firebase Messaging APIs. Das ist wichtig, weil die Legacy API keine Nachrichtenkanäle unterstützt. Jede per Push übertragene Nachricht wird an jeden Client gesendet. Wenn die Erweiterung eines Nutzers nur an einem Teil der Nachrichten interessiert ist, müssen Sie selbst filtern.

Während Firebase als kostenloses Konto verfügbar ist, werden Ihnen Gebühren in Rechnung gestellt, sobald Sie einen bestimmten Nutzungsgrenzwert überschreiten. Wenn Sie Nachrichten an bestimmte Gruppen senden möchten, kann das clientseitige Filtern am Ende mehr kosten, als es tatsächlich erforderlich ist. Sie können dies umgehen, indem Sie mehrere Projekte erstellen, um einzelne Kanäle zu replizieren (ein Projekt und eine Sender-ID für jeden Kanal). Jede Erweiterung kann für mehrere Sender-IDs (bis zu 100) registriert werden.

Wenn Sie Unterstützung für Kanäle benötigen oder Push-Benachrichtigungen verwenden möchten, ohne Firebase zu nutzen, können Sie alternativ die Push API verwenden.