Firebase Cloud Messaging (FCM) mit chrome.gcm verwenden

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

chrome.gcm wird zwar noch unterstützt, wurde aber vor mehr als einem Jahrzehnt vor dem Push-Standard erstellt. Generell empfiehlt es sich, den Webstandard anstelle einer erweiterungsspezifischen API zu verwenden. Sofern Sie chrome.gcm nicht verwenden müssen, empfehlen wir die Verwendung von Push.

Vorbereitung

Zur Verwendung von chrome.gcm müssen Sie ein Firebase-Konto einrichten.

Firebase.com-Startseite
Firebase.com-Startseite

Nachdem Sie ein Konto erstellt haben, öffnen Sie die Firebase Console und wählen Sie ein vorhandenes Projekt aus oder erstellen Sie ein neues für Ihre Erweiterung.

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

Rufen Sie die Seite mit den Einstellungen für Cloud Messaging auf.

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

Wenn Sie bereits ein Cloud Messaging-Konto für dieses Projekt haben, kopieren Sie die angegebene numerische Absender-ID.

Wenn Cloud Messaging nicht aktiviert ist, müssen Sie die Firebase Cloud Messaging API für das Projekt in Google Cloud aktivieren. Auf dem folgenden Bild ist zu sehen, wo sich in den Firebase-Einstellungen ein Link direkt zu dieser Seite befindet.

Screenshot des Speicherorts der Verknüpfung zum Aktivieren der Firebase Messaging API in Google Cloud
Link zu den Google Cloud-Einstellungen in Firebase öffnen

Kehren Sie nach der Aktivierung zur Seite mit den Einstellungen für Cloud Messaging zurück und kopieren Sie die Absender-ID.

chrome.gcm konfigurieren

Nachdem Sie die Absender-ID von Firebase erhalten haben, können Sie Ihre Erweiterung so konfigurieren, dass sie auf Nachrichten wartet. Stellen Sie zuerst sicher, dass Sie dem manifest.json Ihrer Erweiterung die Berechtigung gcm hinzugefügt haben.

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

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

Auf Nachrichten achten

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

Firebase ohne Firebase

chrome.gcm wird zwar immer über Firebase gesendet, aber Firebase kann so konfiguriert werden, dass es als Proxy für externe Anbieter von Push-Mitteilungen dient. Normalerweise geben Anbieter die Unterstützung für Chrome-Erweiterungen ausdrücklich an. Allerdings sollte jeder Anbieter funktionieren, der die alten Push-Benachrichtigungen von Firebase unterstützt. Wenn Ihr Anbieter die Unterstützung für die alten Push-Benachrichtigungen von Firebase angibt, können Sie sie ausprobieren. Sollten Probleme auftreten, kann der Support des Anbieters eventuelle Einschränkungen erläutern.

Kanäle und Themen

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

Firebase ist zwar ein kostenloses Konto, aber wenn Sie einen bestimmten Nutzungsgrenzwert überschreiten, werden Ihnen Kosten in Rechnung gestellt. Wenn Sie Nachrichten an bestimmte Gruppen senden möchten, kann die clientseitige Filterung mehr kosten, als sie wert ist. Du kannst das Problem umgehen, indem du mehrere Projekte erstellst, um einzelne Kanäle zu replizieren (ein Projekt und eine Sender-ID für jeden Kanal). Eine Erweiterung kann für bis zu 100 Absender-IDs registriert werden.

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