Usa Firebase Cloud Messaging (FCM) con chrome.gcm

Puedes enviar y recibir mensajes a los usuarios finales con chrome.gcm. Se basa en Firebase Cloud Messaging (FCM) y se basa en un servicio externo que debes configurar. En este instructivo, se explican todos los pasos necesarios para que funcione en tu extensión.

Si bien chrome.gcm sigue siendo compatible, se creó hace más de una década antes del estándar Push. En general, siempre se recomienda usar el estándar web en lugar de una API específica de la extensión. A menos que tengas una necesidad específica para usar chrome.gcm, te recomendamos usar Push.

Requisitos previos

Para usar chrome.gcm, deberás configurar una cuenta de Firebase.

Página principal de Firebase.com.
Página principal de Firebase.com

Una vez que hayas creado una cuenta, abre Firebase console y selecciona un proyecto existente para usarlo, o crea uno nuevo para tu extensión.

Captura de pantalla de las fichas de proyectos en Firebase console.
Anuncios de proyectos en Firebase console

Continúa a la página de configuración de Cloud Messaging.

Captura de pantalla de una página de configuración de Firebase Cloud Messaging.
Página de configuración de Firebase Cloud Messaging

Si tienes una cuenta de mensajería en la nube existente en este proyecto, debes copiar el ID numérico del remitente que aparece.

Si no tienes habilitada la mensajería en la nube, deberás habilitar la API de Cloud Messaging de Firebase para el proyecto en Google Cloud. En la siguiente imagen, puedes ver dónde hay un vínculo directo a esta página en la configuración de Firebase.

Captura de pantalla de la ubicación del vínculo para habilitar la API de Firebase Messaging en Google Cloud.
Cómo abrir el vínculo de configuración de Google Cloud en Firebase

Una vez habilitado, vuelve a la página de configuración de Cloud Messaging y copia el ID del remitente.

Configura chrome.gcm

Ahora que tienes el ID de remitente de Firebase, puedes configurar tu extensión para escuchar mensajes. Para comenzar, asegúrate de haber agregado el permiso gcm a la manifest.json de tu extensión.

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

Ahora tienes acceso a la API de chrome.gcm. Para registrarte y escuchar mensajes push, llama a chrome.gcm.register.

Escuchar mensajes

Una vez que la extensión haya registrado tu ID de remitente, deberás agregar código para controlar los mensajes entrantes.

Firebase sin Firebase

Si bien chrome.gcm siempre pasa por Firebase, este se puede configurar para actuar como proxy de proveedores externos de mensajes push. Por lo general, los proveedores enumeran de forma explícita la compatibilidad con las extensiones de Chrome. Sin embargo, cualquier proveedor que admita las notificaciones push heredadas de Firebase debería funcionar. Si tu proveedor indica que admite las notificaciones push heredadas de Firebase, pruébalas. Si experimentas problemas, el equipo de asistencia de los proveedores debe poder aclarar las restricciones que podrían aplicarse.

Acerca de los canales y los temas

chrome.gcm usa las APIs de Firebase Messaging heredadas. Esto es importante, porque la API heredada no admite canales de mensajes. Cada mensaje enviado se enviará a cada cliente. Si a la extensión de un usuario solo le interesa un subconjunto de mensajes, deberás filtrar por tu cuenta.

Si bien Firebase comienza como una cuenta gratuita, se te cobrará una vez que superes un límite de uso determinado. Si planeas enviar mensajes a grupos específicos, el filtrado del cliente puede terminar costando más de lo que se garantiza. Para evitar este problema, puedes crear varios proyectos para replicar canales individuales (un proyecto y un ID de remitente para cada canal). Cualquier extensión puede registrarse para varios IDs de remitente, hasta 100.

Como alternativa, si necesitas compatibilidad con canales o quieres usar notificaciones push sin pasar por Firebase, puedes usar la API de Push.