Usa Firebase Cloud Messaging (FCM) con chrome.gcm

Puedes enviar y recibir mensajes para usuarios finales con chrome.gcm. Dado que se basa en Firebase Cloud Messaging (FCM), depende de un servicio externo que debas 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 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.

Es la página principal de Firebase.com.
Página principal de Firebase.com

Una vez que hayas creado una cuenta, te recomendamos abrir Firebase console y seleccionar un proyecto existente para usar o crear uno nuevo para la extensión.

Captura de pantalla de las listas de proyectos en Firebase console.
Fichas 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 Cloud Messaging existente en este proyecto, te recomendamos copiar el ID numérico de remitente que aparece.

Si no tienes habilitado el envío de mensajes a través de la nube, deberás habilitar la API de Firebase Cloud Messaging 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.
Abrir el vínculo de configuración de Google Cloud en Firebase

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

Configura chrome.gcm

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

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

Ahora tienes acceso a la API de chrome.gcm. Puedes registrarte para escuchar mensajes push llamando a chrome.gcm.register.

Escuchar mensajes

Una vez que la extensión registró tu ID de remitente, deberás agregar un código para administrar los mensajes entrantes.

Firebase sin Firebase

Si bien chrome.gcm siempre pasa por Firebase, Firebase se puede configurar para que actúe como un proxy para proveedores de mensajería push externos. Por lo general, los proveedores indican de forma explícita la compatibilidad con las extensiones de Chrome, pero cualquier proveedor que admita las notificaciones push heredadas de Firebase debería funcionar. Si tu proveedor muestra compatibilidad con las notificaciones push heredadas de Firebase, pruébala. Si tienes problemas, el equipo de asistencia de los proveedores debería poder aclarar cualquier restricción en curso.

En canales y temas

chrome.gcm usa las APIs de Firebase Messaging heredadas. Esto es importante porque la API heredada no admite canales de mensajes. Todos los mensajes que se envíen se enviarán a todos los clientes. Si la extensión de un usuario solo está interesada en un subconjunto de mensajes, deberás filtrar.

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 teniendo un costo mayor de lo garantizado. Para solucionar este problema, crea varios proyectos a fin de replicar los canales individuales (un proyecto y un ID de remitente para cada canal). Cada 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.