Questa guida rapida descrive come configurare Firebase Cloud Messaging nelle tue app client web e mobile per poter inviare messaggi in modo affidabile. Per gli ambienti
server, vedi Il tuo ambiente server e
FCM.
Configurare un'app client JavaScript Firebase Cloud Messaging
L'API JavaScript FCM ti consente di ricevere messaggi di notifica nelle app web eseguite in browser che supportano l'API Push. Sono incluse le versioni del browser elencate in questa matrice di supporto e le estensioni Chrome che utilizzano l'API Push.
L'SDK FCM è supportato solo nelle pagine pubblicate tramite HTTPS. Ciò è dovuto all'utilizzo dei service worker, disponibili solo sui siti HTTPS. Se hai bisogno di un provider, Firebase App Hosting è consigliato e offre un livello senza costi per l'hosting HTTPS sul tuo dominio.
Per iniziare a utilizzare l'API JavaScript FCM, devi aggiungere Firebase alla tua app web e aggiungere la logica per accedere ai token di registrazione.
Aggiungere e inizializzare l'SDK FCM
Se non l'hai ancora fatto, installa l'SDK Firebase JS e inizializza Firebase.
Aggiungi l'SDK Firebase Cloud Messaging JS e inizializza 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();
Se utilizzi FCM per il web e vuoi eseguire l'upgrade all'SDK 6.7.0 o versioni successive, devi attivare l'API FCM Registration per il tuo progetto in Google Cloud. Quando abiliti l'API, assicurati di aver eseguito l'accesso a Cloud Console con lo stesso Account Google che utilizzi per Firebase e assicurati di selezionare il progetto corretto. I nuovi progetti che aggiungono l'SDK FCM hanno questa API abilitata per impostazione predefinita.
Configurare le credenziali web con FCM
L'interfaccia web FCM utilizza credenziali web chiamate Voluntary Application Server Identification o chiavi VAPID per autorizzare le richieste di invio ai servizi push web supportati. Per iscrivere la tua app alle notifiche push, devi associare una coppia di chiavi al tuo progetto Firebase. Puoi generare una nuova coppia di chiavi o importare quella esistente tramite la console Firebase.
Genera una nuova coppia di chiavi
- Apri la scheda Cloud Messaging del riquadro Impostazioni della console Firebase e vai alla sezione Configurazione web.
- Nella scheda Certificati web push, fai clic su Genera coppia di chiavi. La console mostra un avviso che indica che la coppia di chiavi è stata generata e visualizza la stringa della chiave pubblica e la data di aggiunta.
Importare una coppia di chiavi esistente
Se disponi di una coppia di chiavi esistente che utilizzi già con la tua app web, puoi importarla in FCM per poter raggiungere le istanze dell'app web esistenti tramite le API FCM. Per importare le chiavi, devi disporre dell'accesso a livello di proprietario al progetto Firebase. Importa la chiave pubblica e quella privata esistenti in formato con codifica Base64 sicura per gli URL:
- Apri la scheda Cloud Messaging del riquadro Impostazioni della console Firebase e vai alla sezione Configurazione web.
- Nella scheda Certificati push web, trova e seleziona il testo del link: importa una coppia di chiavi esistente.
- Nella finestra di dialogo Importa una coppia di chiavi, fornisci le chiavi pubblica e privata nei campi corrispondenti e fai clic su Importa. La console mostra la stringa della chiave pubblica e la data di aggiunta.
Per istruzioni su come aggiungere la chiave alla tua app, vedi Configurare le credenziali web nella tua app. Per ulteriori informazioni sul formato delle chiavi e su come generarle, vedi Chiavi del server delle applicazioni.
Configurare le credenziali web nell'app
Il metodo getToken(): Promise<string>
consente a FCM di utilizzare le credenziali della chiave VAPID quando invia richieste di messaggi
a servizi push diversi. Utilizzando la chiave generata o importata
in base alle istruzioni riportate in
Configurare le credenziali web con FCM,
aggiungila al codice dopo aver recuperato l'oggetto di messaggistica:
import { getMessaging, getToken } from "firebase/messaging";
const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});
Accedere al token di registrazione
Quando devi recuperare il token di registrazione corrente per un'istanza dell'app, per prima cosa
richiedi le autorizzazioni di notifica all'utente con Notification.requestPermission()
.
Se chiamato come mostrato, restituisce un token se l'autorizzazione viene concessa o rifiuta la promessa
se negata:
function requestPermission() { console.log('Requesting permission...'); Notification.requestPermission().then((permission) => { if (permission === 'granted') { console.log('Notification permission granted.');
FCM richiede un file firebase-messaging-sw.js
.
A meno che tu non abbia già un file firebase-messaging-sw.js
, crea un file vuoto
con questo nome e inseriscilo nella radice del tuo dominio prima di recuperare un token.
Puoi aggiungere contenuti significativi al file in un secondo momento nella procedura di configurazione del client.
Per recuperare il token attuale:
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); // ... });
Dopo aver ottenuto il token, invialo al server dell'app e archivialo utilizzando il metodo che preferisci.
Inviare un messaggio di notifica di prova
- Installa ed esegui l'app sul dispositivo di destinazione. Sui dispositivi Apple, dovrai accettare la richiesta di autorizzazione per ricevere notifiche da remoto.
- Verifica che l'app sia in esecuzione in background sul dispositivo.
- Nella console Firebase, apri la pagina Messaggistica.
- Se questo è il tuo primo messaggio, seleziona Crea la tua prima campagna.
- Seleziona Messaggi di notifica Firebase e poi Crea.
- In alternativa, nella scheda Campagne, seleziona Nuova campagna e poi Notifiche.
- Inserisci il testo del messaggio.
- Seleziona Invia messaggio di prova dal riquadro a destra.
- Nel campo etichettato Aggiungi un token di registrazione FCM, inserisci il token di registrazione.
- Seleziona Testa.
Dopo aver selezionato Testa, il dispositivo client di destinazione, con l'app in background, dovrebbe ricevere la notifica.
Passaggi successivi
Dopo aver completato i passaggi di configurazione, ecco alcune opzioni per procedere con FCM per il web (JavaScript):
- Ricevere messaggi in un client JavaScript
- Inviare il primo messaggio a un'app in background
- Inviare messaggi a più dispositivi