Utilizzare Firebase Cloud Messaging (FCM) con browser.gcm

Puoi inviare e ricevere messaggi agli utenti finali con browser.gcm. Poiché si basa su Firebase Cloud Messaging (FCM), si affida a un servizio esterno che devi configurare. Questa guida illustra tutti i passaggi necessari per farla funzionare nella tua estensione.

Sebbene browser.gcm sia ancora supportato, è stato creato oltre un decennio fa, prima dello standard Push. In generale, è sempre consigliabile utilizzare lo standard web anziché un'API specifica dell'estensione. A meno che tu non abbia un'esigenza specifica di utilizzare browser.gcm, ti consigliamo di utilizzare Push.

Prerequisiti

Per utilizzare browser.gcm, devi configurare un account Firebase.

Home page di Firebase.com.
Home page di Firebase.com

Una volta creato un account, apri la console Firebase e seleziona un progetto esistente da utilizzare o creane uno nuovo per la tua estensione.

Screenshot degli elenchi dei progetti nella console Firebase.
Elenchi dei progetti nella console Firebase

Continua alla pagina delle impostazioni per Cloud Messaging.

Screenshot di una pagina delle impostazioni di Firebase Cloud Messaging.
Pagina delle impostazioni di Firebase Cloud Messaging

Se hai un account di messaggistica cloud esistente in questo progetto, copia l'ID mittente numerico elencato.

Se non hai attivato la messaggistica cloud, devi abilitare l'API Firebase Cloud Messaging per il progetto in Google Cloud. Nell'immagine seguente puoi vedere dove si trova un link diretto a questa pagina nelle impostazioni di Firebase.

Screenshot della posizione del link per abilitare l'API Firebase Messaging in Google Cloud.
Apertura del link alle impostazioni di Google Cloud in Firebase

Una volta attivato, torna alla pagina delle impostazioni di Cloud Messaging e copia l'ID mittente.

Configurare browser.gcm

Ora che hai l'ID mittente da Firebase, puoi configurare l'estensione per ascoltare i messaggi. Per iniziare, assicurati di aver aggiunto l'autorizzazione gcm al file manifest.json della tua estensione.

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

Ora hai accesso all'API browser.gcm. Puoi registrarti per ascoltare i messaggi push chiamando il numero browser.gcm.register.

Ascolto di messaggi

Una volta che l'estensione ha registrato il tuo ID mittente, devi aggiungere il codice per gestire i messaggi in arrivo.

Firebase senza Firebase

browser.gcm passa sempre attraverso Firebase, ma Firebase può essere configurato per fungere da proxy per fornitori esterni di messaggistica push. In genere i fornitori elencano esplicitamente il supporto delle estensioni di Chrome, ma qualsiasi fornitore che supporti le notifiche push legacy di Firebase dovrebbe funzionare. Se il tuo provider elenca il supporto per le notifiche push legacy di Firebase, provalo. In caso di problemi, l'assistenza dei provider dovrebbe essere in grado di chiarire eventuali restrizioni in vigore.

Informazioni su canali e argomenti

browser.gcm utilizza le API Firebase Messaging legacy. Questo è importante perché l'API legacy non supporta i canali di messaggistica. Ogni messaggio push verrà inviato a ogni client. Se l'estensione di un utente è interessata solo a un sottoinsieme di messaggi, dovrai filtrare tu stesso.

Anche se Firebase inizia come account senza costi, ti verrà addebitato un costo una volta superata una determinata soglia di utilizzo. Se prevedi di inviare messaggi a gruppi specifici, il filtraggio lato client potrebbe finire per costare più di quanto sia giustificato. Puoi aggirare questo problema creando più progetti per replicare i singoli canali (un progetto e un ID mittente per ogni canale). Una determinata estensione può registrarsi per più ID mittente, fino a 100.

In alternativa, se hai bisogno del supporto dei canali o vuoi utilizzare le notifiche push senza passare per Firebase, puoi utilizzare l'API Push.