Estas instrucciones no se aplican a:
- Web Push. Los dispositivos Android pueden suscribirse a su sitio web o PWA sin un Service Account de FCM. Consulte Configuración de push web.
- Aplicaciones Huawei distribuidas a través de Huawei App Gallery. Consulte Autorización de Huawei.
Requisitos
- Una aplicación Android distribuida a través de Google Play Store
- Una cuenta de OneSignal
- Una cuenta de Firebase (gratis)
- Una clave privada de Service Account de Firebase con los permisos
cloudmessaging.messages.createyfirebase.projects.get- Si no tiene una, siga los pasos para crear una clave privada de Service Account de Firebase
- Si ya tiene una clave privada, verifique los permisos existentes
Crear una clave privada de Service Account de Firebase \
Crear o abrir su proyecto de Firebase
Vaya a su consola de Firebase y cree o seleccione un proyecto.

Habilitar Firebase Cloud Messaging API V1
En Project settings, seleccione la pestaña Cloud Messaging.
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”.

Este es un buen momento para verificar si su Service Account de Firebase tiene los permisos requeridos:
cloudmessaging.messages.createfirebase.projects.get
Cargar la clave privada de Service Account en OneSignal
En su panel de OneSignal: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).

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.
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/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.
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.
Encontrar su Service Account
Haga coincidir el correo del principal con el campo
client_email en su clave privada cargada.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.
¿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 asupport@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. Si necesita ayuda, contacte asupport@onesignal.com con su App ID.
¿Por qué no veo un Sender ID en OneSignal?
Si su clave de servidor de Firebase se ve comoAIz..., 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 campofcm_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.
¿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.

