Usa Firebase Cloud Messaging (FCM) con chrome.gcm

Puedes enviar y recibir mensajes a usuarios finales con chrome.gcm. Debido a que está construido sobre Firebase Cloud Messaging (FCM), se basa en un servicio externo que necesitas configurar. Este instructivo te guiará por todos los pasos necesarios para obtenerlo que funcionan en tu extensión.

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

Requisitos previos

Para usar chrome.gcm, debes configurar una cuenta de Firebase de servicio predeterminada.

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

Una vez que hayas creado una cuenta, deberás abrir Firebase console y selecciona un proyecto existente para usar, o bien crea uno nuevo para tu extensión.

Captura de pantalla de las fichas 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 ya tienes una cuenta de Cloud Messaging en este proyecto, te recomendamos copia el ID de remitente numérico que aparece en la lista.

Si no habilitaste el envío de mensajes a través de la nube, deberás habilitar el SDK de Firebase. La API de Cloud Messaging para el proyecto dentro de Google Cloud. En la siguiente puedes ver dónde hay un vínculo directo a esta página en la configuración.

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 habilitada, regresa a la página de configuración de Cloud Mensajes y copia el ID del remitente.

Configurar chrome.gcm

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

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

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

Escuchar mensajes

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

Firebase sin Firebase

Si bien chrome.gcm siempre pasa por Firebase, Firebase se puede configurar para lo siguiente: funciona como proxy para proveedores de mensajería push externos. Por lo general, los proveedores indicar explícitamente la compatibilidad con las extensiones de Chrome; sin embargo, cualquier proveedor que admita Las notificaciones push heredadas de Firebase deberían funcionar. Si tu proveedor menciona compatibilidad con notificaciones push heredadas de Firebase, pruébala. Si experimentas problemas, la asistencia de los proveedores debería poder aclarar cualquier restricción que en la nube.

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 enviados irán a cada cliente. Si la extensión de un usuario solo está interesada en una un subconjunto de mensajes, deberás filtrarlo tú mismo.

Si bien Firebase comienza como una cuenta gratuita, se te cobrará una vez que superes un determinado umbral de uso. Si planeas enviar mensajes a grupos específicos, el filtrado del cliente puede costar más de lo que se garantiza. Puedes solucionar esto creando varios proyectos para replicar canales individuales (un proyecto y un ID de remitente para cada canal). Cualquier extensión puede registrarse para múltiples IDs de remitente, hasta 100.

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