Firebase Cloud Messaging-Client-App für JavaScript einrichten

Mit der FCM JavaScript API können Sie Benachrichtigungsnachrichten in Web-Apps erhalten, die in Browsern ausgeführt werden, die die Push API unterstützen. Dazu gehören die in dieser Supportmatrix aufgeführten Browserversionen und Chrome-Erweiterungen über die Push API.

Das FCM SDK wird nur auf Seiten unterstützt, die über HTTPS ausgeliefert werden. Das liegt an der Verwendung von Dienst-Workern, die nur auf HTTPS-Websites verfügbar sind. Wenn Sie einen Anbieter benötigen, wird Firebase Hosting empfohlen. Es bietet eine kostenlose Stufe für das HTTPS-Hosting auf Ihrer eigenen Domain.

Um die FCM JavaScript API verwenden zu können, müssen Sie zuerst Firebase zu Ihrer Webanwendung hinzufügen und Logik hinzufügen, um auf Registrierungstokens zuzugreifen.

FCM-SDK hinzufügen und initialisieren

  1. Installieren und initialisieren Sie das Firebase JS SDK, falls noch nicht geschehen.

  2. Fügen Sie das Firebase Cloud Messaging JS SDK hinzu und initialisieren Sie Firebase Cloud Messaging:

Web

import { initializeApp } from "firebase/app";
import { getMessaging } from "firebase/messaging";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Firebase Cloud Messaging and get a reference to the service
const messaging = getMessaging(app);

Web

import firebase from "firebase/compat/app";
import "firebase/compat/messaging";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Firebase Cloud Messaging and get a reference to the service
const messaging = firebase.messaging();

Wenn Sie derzeit FCM für das Web verwenden und ein Upgrade auf das SDK ausführen möchten ab Version 6.7.0 aktiviert haben, müssen Sie den FCM Registration API für Ihr Projekt in der Google Cloud Console. Achten Sie beim Aktivieren der API darauf, Sie sind in der Cloud Console mit demselben Google-Konto angemeldet, das Sie für Firebase und wählen Sie das richtige Projekt aus. Bei neuen Projekten, in denen das FCM SDK hinzugefügt wird, ist diese API standardmäßig aktiviert.

Webanmeldedaten mit FCM konfigurieren

Die FCM-Weboberfläche verwendet Web-Anmeldedaten, sogenannte „VAPID-Schlüssel“ (Voluntary Application Server Identification), um das Senden von Anfragen an unterstützte Web-Push-Dienste zu autorisieren. Wenn Sie Push-Benachrichtigungen für Ihre App abonnieren möchten, müssen Sie Ihrem Firebase-Projekt ein Schlüsselpaar zuordnen. Sie haben folgende Möglichkeiten: Generieren Sie ein neues Schlüsselpaar oder importieren Sie Ihr vorhandenes Schlüsselpaar über die Firebase- Konsole.

Neues Schlüsselpaar generieren

  1. Öffne den Tab Cloud Messaging im Bereich Einstellungen der Firebase-Konsole und scrolle zum Abschnitt Webkonfiguration.
  2. Klicken Sie auf dem Tab Web-Push-Zertifikate auf Schlüsselpaar generieren. In der Console wird eine Meldung angezeigt, dass das Schlüsselpaar generiert wurde. Außerdem werden der öffentliche Schlüsselstring und das Datum des Hinzufügens angezeigt.

Vorhandenes Schlüsselpaar importieren

Wenn Sie ein Schlüsselpaar haben, das Sie bereits für Ihre Web-App verwenden, kann sie in FCM importieren, damit Sie Ihre vorhandene Web-App erreichen können Instanzen über FCM APIs zu erstellen. Zum Importieren von Schlüsseln benötigen Sie Zugriff auf das Firebase-Projekt auf Inhaberebene. Importieren Sie Ihren vorhandenen öffentlichen und privaten Schlüssel im Base64-Format, das für URLs sicher ist:

  1. Öffne den Tab Cloud Messaging im Bereich Einstellungen der Firebase-Konsole und scrolle zum Abschnitt Webkonfiguration.
  2. Wählen Sie auf dem Tab Web Push-Zertifikate den Linktext aus. „Vorhandenes Schlüsselpaar importieren“
  3. Geben Sie im Dialogfeld Schlüsselpaar importieren Ihren öffentlichen und Ihren privaten Schlüssel an. die entsprechenden Felder aus und klicken Sie auf Importieren. In der Console werden der öffentliche Schlüsselstring und das Datum des Hinzufügens angezeigt.

Eine Anleitung zum Hinzufügen des Schlüssels zu deiner App findest du unter Konfigurieren Sie Web-Anmeldedaten in Ihrer App. Weitere Informationen zum Format der Schlüssel und ihrer Generierung Siehe Anwendungsserverschlüssel.

Webanmeldedaten in Ihrer App konfigurieren

Die Methode getToken(): Promise<string> Ermöglicht FCM, die Anmeldedaten des VAPID-Schlüssels beim Senden einer Nachricht zu verwenden an verschiedene Push-Dienste gesendet. Mit dem generierten oder importierten Schlüssel gemäß den Anweisungen in Konfigurieren Sie Web-Anmeldedaten mit FCM, fügen Sie sie Ihrem Code hinzu, nachdem das Nachrichtenobjekt abgerufen wurde:

import { getMessaging, getToken } from "firebase/messaging";

const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});

Auf Registrierungstoken zugreifen

Wenn Sie das aktuelle Registrierungstoken für eine App-Instanz abrufen müssen, Benachrichtigungsberechtigungen vom Nutzer mit Notification.requestPermission() anfordern. Bei einem Aufruf wie gezeigt wird ein Token zurückgegeben, wenn die Berechtigung gewährt oder das Promise abgelehnt wird. bei Ablehnung:

function requestPermission() {
  console.log('Requesting permission...');
  Notification.requestPermission().then((permission) => {
    if (permission === 'granted') {
      console.log('Notification permission granted.');

Für FCM ist eine firebase-messaging-sw.js-Datei erforderlich. Wenn Sie nicht bereits eine firebase-messaging-sw.js-Datei haben, erstellen Sie eine leere Datei und fügen Sie ihn in das Stammverzeichnis Ihrer Domain ein, bevor Sie ein Token abrufen. Sie können der Datei später im Rahmen der Einrichtung des Clients aussagekräftige Inhalte hinzufügen.

So rufen Sie das aktuelle Token ab:

Web

import { getMessaging, getToken } from "firebase/messaging";

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
const messaging = getMessaging();
getToken(messaging, { vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

Web

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.getToken({ vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

Senden Sie das Token an Ihren Anwendungsserver und speichern Sie mit Ihrer bevorzugten Methode.

Nächste Schritte

Nachdem Sie die Einrichtungsschritte abgeschlossen haben, haben Sie folgende Möglichkeiten, mit FCM für das Web (JavaScript) fortzufahren: