Mit browser.gcm können Sie Nachrichten an Endnutzer senden und von ihnen empfangen. Da es auf Firebase Cloud Messaging (FCM) basiert, ist ein externer Dienst erforderlich, den Sie einrichten müssen. In dieser Anleitung werden alle erforderlichen Schritte beschrieben, damit die Funktion in Ihrer Erweiterung funktioniert.
browser.gcm wird zwar weiterhin unterstützt, wurde aber vor über einem Jahrzehnt vor dem Push-Standard erstellt. Im Allgemeinen ist es immer am besten, den Webstandard anstelle einer extensionspezifischen API zu verwenden. Sofern Sie browser.gcm nicht unbedingt benötigen, empfehlen wir die Verwendung von Push.
Vorbereitung
Wenn Sie browser.gcm verwenden möchten, müssen Sie ein Firebase-Konto einrichten.
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.
Rufen Sie die Einstellungsseite für Cloud Messaging auf.
Wenn Sie in diesem Projekt ein vorhandenes Cloud Messaging-Konto haben, kopieren Sie die aufgeführte numerische Absender-ID.
Wenn Sie Cloud Messaging nicht aktiviert haben, müssen Sie die Firebase Cloud Messaging API für das Projekt in Google Cloud aktivieren. Im folgenden Bild sehen Sie, wo sich in den Firebase-Einstellungen ein Link direkt zu dieser Seite befindet.
Kehren Sie nach der Aktivierung zur Einstellungsseite für Cloud Messaging zurück und kopieren Sie die Absender-ID.
browser.gcm konfigurieren
Nachdem Sie Ihre Absender-ID von Firebase erhalten haben, können Sie Ihre Erweiterung so konfigurieren, dass sie auf Nachrichten wartet. Fügen Sie zuerst die gcm-Berechtigung zur manifest.json Ihrer Erweiterung hinzu.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Sie haben jetzt Zugriff auf die browser.gcm API. Sie können sich für den Empfang von Push-Benachrichtigungen registrieren, indem Sie browser.gcm.register aufrufen.
Auf Nachrichten achten
Nachdem die Erweiterung Ihre Absender-ID registriert hat, müssen Sie Code hinzufügen, um eingehende Nachrichten zu verarbeiten.
Firebase ohne Firebase
browser.gcm wird immer über Firebase gesendet. Firebase kann jedoch so konfiguriert werden, dass es als Proxy für externe Anbieter von Push-Benachrichtigungen fungiert. Normalerweise geben Anbieter die Unterstützung für Chrome-Erweiterungen explizit an. Allerdings sollte jeder Anbieter funktionieren, der die Legacy-Push-Benachrichtigungen von Firebase unterstützt. Wenn Ihr Anbieter die Unterstützung für die alten Push-Benachrichtigungen von Firebase angibt, können Sie es ausprobieren. Wenn Probleme auftreten, sollten Sie sich an den Support des Anbieters wenden, um eventuelle Einschränkungen zu klären.
Kanäle und Themen
browser.gcm verwendet die Legacy-Firebase Messaging APIs. Das ist wichtig, da die alte API keine Nachrichtenchannels unterstützt. Jede Push-Nachricht wird an alle Clients gesendet. Wenn die Erweiterung eines Nutzers nur an einer Teilmenge von Nachrichten interessiert ist, müssen Sie selbst filtern.
Firebase ist zwar anfangs ein kostenloses Konto, aber sobald Sie einen bestimmten Nutzungs-Grenzbetrag überschreiten, werden Ihnen Gebühren in Rechnung gestellt. Wenn Sie Nachrichten an bestimmte Gruppen senden möchten, kann die clientseitige Filterung mehr kosten als gerechtfertigt. Sie können dieses Problem umgehen, indem Sie mehrere Projekte erstellen, 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 Channels benötigen oder Push-Benachrichtigungen ohne Firebase verwenden möchten, können Sie alternativ die Push API verwenden.