Saltar al contenido principal
Para enviar notificaciones push a usuarios que descargan su aplicación Android desde Google Play Store, debe crear y cargar una clave privada de Service Account de Firebase Cloud Messaging (FCM) en OneSignal.
Estas instrucciones no se aplican a:

Requisitos


Crear una clave privada de Service Account de Firebase \

1

Crear o abrir su proyecto de Firebase

Vaya a su consola de Firebase y cree o seleccione un proyecto.
Consola de Firebase mostrando la lista de proyectos disponibles
2

Habilitar Firebase Cloud Messaging API V1

En Project settings, seleccione la pestaña Cloud Messaging.
Configuración del proyecto de Firebase mostrando la pestaña Cloud Messaging con el estado de Firebase Cloud Messaging API (V1) como Enabled
Verifique el estado de Firebase Cloud Messaging API (V1):
  • Si muestra Enabled (marca verde), continúe al siguiente paso.
  • Si muestra Disabled, haga clic en el menú de 3 puntos > Manage API in Google Cloud Console. En Google Cloud Console, haga clic en Enable y espere a que aparezca la marca verde con “API Enabled”.
Página de Firebase Cloud Messaging API de Google Cloud Console mostrando el estado API Enabled con una marca verde
Este es un buen momento para verificar si su Service Account de Firebase tiene los permisos requeridos:
  • cloudmessaging.messages.create
  • firebase.projects.get
Los proyectos de Firebase recién creados generalmente tienen estos permisos en el Service Account predeterminado. Verifique antes de continuar si no está seguro o si trabaja con un proyecto más antiguo. Consulte ¿Cómo verifico los permisos de mi Service Account? para más detalles.
3

Generar una nueva clave privada

De vuelta en Project settings, seleccione la pestaña Service accounts y haga clic en Generate new private key.
Pestaña Service accounts en la configuración del proyecto de Firebase mostrando el botón Generate new private key
Confirme haciendo clic en Generate key en la ventana emergente.
Diálogo de confirmación de Firebase para generar una nueva clave privada para el Service Account
La clave privada descargada contiene credenciales sensibles. No la comparta ni la registre en el control de versiones.
Guarde el archivo .json en una ubicación segura. Lo necesitará en la siguiente sección.

Cargar la clave privada de Service Account en OneSignal

En su panel de OneSignal:
1

Abrir la configuración de Android

Vaya a Settings > Push & In-App > Platforms > Google Android (FCM).Haga clic en Activate (configuración por primera vez) o Settings (si Android ya está configurado).
Configuración de Push & In-App de OneSignal mostrando la pestaña Platforms con el mosaico Google Android (FCM) y un botón Settings
2

Cargar su clave privada de Service Account

Haga clic en Select file y elija la clave privada .json que guardó en la sección anterior.
Pantalla de configuración Google Android (FCM) de OneSignal con el campo de carga de archivo Service Account JSON y el botón Select file
3

Guardar y continuar

Haga clic en Save & Continue. OneSignal valida la clave privada y lo mueve al siguiente paso del flujo de configuración, donde selecciona su SDK.
Si el panel muestra Invalid request u otros errores, es probable que su Service Account no tenga uno o más roles requeridos. Consulte ¿Cómo verifico los permisos de mi Service Account?.
Su aplicación de OneSignal ahora está conectada a Firebase Cloud Messaging (V1). A continuación, siga Configuración del SDK móvil para el SDK que esté usando para instalar e inicializar OneSignal en su aplicación.

Preguntas frecuentes

¿Cómo verifico los permisos de mi Service Account? \

Los permisos del Service Account se gestionan en Google Cloud Console, no en la consola de Firebase. El Service Account cuya clave privada carga en OneSignal debe tener ambos:
  • cloudmessaging.messages.create — otorgado por Firebase Cloud Messaging API Admin (roles/firebasecloudmessaging.admin).
  • firebase.projects.get — otorgado por Firebase Viewer (roles/firebase.viewer).
Roles más amplios como Firebase Admin (roles/firebase.admin), Editor u Owner también incluyen ambos permisos y cumplen con el requisito. Para Service Accounts dedicados solo a OneSignal, prefiera el par estrecho mencionado arriba para limitar el impacto si la clave privada llega a exponerse. Si el panel de OneSignal muestra Invalid request después de cargar su clave privada de Service Account, la causa más común son los roles faltantes.
1

Abrir IAM en Google Cloud Console

Inicie sesión en Google Cloud Console, seleccione el proyecto vinculado a su aplicación de Firebase y vaya a IAM & Admin > IAM.
2

Encontrar su Service Account

Haga coincidir el correo del principal con el campo client_email en su clave privada cargada.
3

Agregar cualquier rol faltante

Haga clic en el ícono de lápiz (editar), luego en Add another role para agregar cualquiera de los roles si aún no está asignado.
4

Guardar

Haga clic en Save. Los cambios de IAM pueden tardar un minuto en aplicarse.

¿Por qué veo “This configuration is for a different Firebase Project”?

Este error ocurre cuando la clave privada cargada pertenece a un proyecto de Firebase diferente (un Sender ID diferente). Solución: Use la clave privada del proyecto de Firebase original. Si no está disponible, contacte a support@onesignal.com con su App ID. Cambiar de proyectos restablece los tokens de push. Sus usuarios deben volver a abrir la aplicación para recibir push nuevamente.

¿Puedo cambiar mi Sender ID?

Sí, pero afectará a sus usuarios existentes. Los tokens de dispositivo están vinculados al Sender ID original. Cambiarlo invalidará los tokens existentes.
Los usuarios dejarán de recibir notificaciones push hasta que vuelvan a abrir la aplicación y generen nuevos tokens.
Si necesita ayuda, contacte a support@onesignal.com con su App ID.

¿Por qué no veo un Sender ID en OneSignal?

Si su clave de servidor de Firebase se ve como AIz..., probablemente esté usando una configuración obsoleta de Google Cloud Messaging (GCM). Cree un nuevo proyecto de Firebase y cargue una clave privada de Service Account.

¿Necesito actualizar mi código al cambiar a FCM V1?

No se requieren cambios en la aplicación ni en el SDK. Esta es una actualización solo del panel.

¿Cuál es la fecha límite para cambiar a FCM V1?

Las API heredadas de FCM de Google ahora están completamente deprecadas. Si aún está usando las API heredadas, debe migrar a FCM V1 de inmediato.

¿Cómo puedo verificar qué aplicaciones aún usan la API heredada?

Llame a la API View an app para cada aplicación y verifique el campo fcm_v1_service_account_json en la respuesta:
  • Presente y no vacío: la aplicación está en FCM V1.
  • Faltante o vacío: la aplicación no está configurada para FCM V1. Si la aplicación envía push de Android, aún está en la API heredada y debe migrarse.
Para listar primero sus aplicaciones y sus App IDs, use la API View apps.

¿Qué es Firebase Cloud Messaging y por qué OneSignal necesita una clave privada de Service Account? \

Firebase Cloud Messaging (FCM) es el servicio de Google para entregar notificaciones push a dispositivos Android. Un Service Account es una identidad de Google que OneSignal usa para autenticarse en su proyecto de Firebase, y su clave privada es un archivo JSON que prueba la identidad. Cargar la clave privada autoriza a OneSignal a enviar push a través de Firebase en su nombre. Para más detalles, consulte la documentación de Service Account de Google.

Páginas relacionadas

Configuración del SDK móvil

Instale e inicialice el SDK de OneSignal en su aplicación Android.

Configuración de push móvil

Pasos de configuración específicos para Android, iOS y otras plataformas móviles.

Configuración de push de Huawei

Autorice a OneSignal a enviar push a aplicaciones Huawei distribuidas a través de Huawei App Gallery.

Configuración de push web

Configure notificaciones push para sitios web.