> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Credenciales de Android Firebase

> Configure las credenciales de Service Account de Firebase Cloud Messaging (FCM) en OneSignal para habilitar notificaciones push de Android en aplicaciones de Google Play Store.

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.

<Note>
  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](./web-push-setup).
  * **Aplicaciones Huawei distribuidas a través de Huawei App Gallery.** Consulte [Autorización de Huawei](./authorize-onesignal-to-send-huawei-push).
</Note>

***

## Requisitos

* Una aplicación Android distribuida a través de Google Play Store
* Una [cuenta de OneSignal](https://onesignal.com)
* Una [cuenta de Firebase (gratis)](https://firebase.google.com)
* Una clave privada de Service Account de Firebase con los permisos `cloudmessaging.messages.create` y `firebase.projects.get`
  * Si no tiene una, siga los pasos para [crear una clave privada de Service Account de Firebase](#create-a-firebase-service-account-private-key)
  * Si ya tiene una clave privada, [verifique los permisos existentes](#how-do-i-check-my-service-account-permissions)

***

<h2 id="create-a-firebase-service-account-private-key">
  Crear una clave privada de Service Account de Firebase \\
</h2>

<Steps>
  <Step title="Crear o abrir su proyecto de Firebase">
    Vaya a su [consola de Firebase](https://console.firebase.google.com/) y cree o seleccione un proyecto.

    <Frame caption="Página de Proyectos dentro de Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-projects.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=aca8614ec0e40fc63fd71f3160098778" alt="Consola de Firebase mostrando la lista de proyectos disponibles" width="2656" height="1780" data-path="images/mobile/firebase-projects.png" />
    </Frame>
  </Step>

  <Step title="Habilitar Firebase Cloud Messaging API V1">
    En **Project settings**, seleccione la pestaña **Cloud Messaging**.

    <Frame caption="Pestaña Cloud Messaging en la configuración del proyecto de Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-cloud-messaging.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=e877c1d0ca51b85b1f2e80418e0195c4" alt="Configuración del proyecto de Firebase mostrando la pestaña Cloud Messaging con el estado de Firebase Cloud Messaging API (V1) como Enabled" width="2956" height="1140" data-path="images/mobile/firebase-project-settings-cloud-messaging.png" />
    </Frame>

    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".

    <Frame caption="Firebase Cloud Messaging API habilitada en Google Cloud Console">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-cloud-messaging-api-v1-enabled.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=9239c8baa0659152d8aed6fc6af810a7" alt="Página de Firebase Cloud Messaging API de Google Cloud Console mostrando el estado API Enabled con una marca verde" width="1616" height="750" data-path="images/mobile/firebase-cloud-messaging-api-v1-enabled.png" />
    </Frame>

    <Note>
      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?](#how-do-i-check-my-service-account-permissions) para más detalles.
    </Note>
  </Step>

  <Step title="Generar una nueva clave privada">
    De vuelta en **Project settings**, seleccione la pestaña **Service accounts** y haga clic en **Generate new private key**.

    <Frame caption="Sección de Service Accounts dentro de Firebase">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-project-settings-service-accounts.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=d0b4a6d7c84cd1a639b6de79c3789363" alt="Pestaña Service accounts en la configuración del proyecto de Firebase mostrando el botón Generate new private key" width="2978" height="1734" data-path="images/mobile/firebase-project-settings-service-accounts.png" />
    </Frame>

    Confirme haciendo clic en **Generate key** en la ventana emergente.

    <Frame caption="Generar la clave privada para el Service Account.">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/firebase-generate-new-private-key.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=6b3ca4145c180400cf80a434adbbc216" alt="Diálogo de confirmación de Firebase para generar una nueva clave privada para el Service Account" width="1432" height="572" data-path="images/mobile/firebase-generate-new-private-key.png" />
    </Frame>

    <Warning>
      La clave privada descargada contiene credenciales sensibles. No la comparta ni la registre en el control de versiones.
    </Warning>

    Guarde el archivo `.json` en una ubicación segura. Lo necesitará en la siguiente sección.
  </Step>
</Steps>

***

## Cargar la clave privada de Service Account en OneSignal

En su panel de OneSignal:

<Steps>
  <Step title="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).

    <Frame caption="Pantalla de plataformas dentro de la configuración de la aplicación de OneSignal">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-push-platforms.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=9b8af64aae3dd5fdcb715731710785ca" alt="Configuración de Push & In-App de OneSignal mostrando la pestaña Platforms con el mosaico Google Android (FCM) y un botón Settings" width="2496" height="648" data-path="images/mobile/onesignal-push-platforms.png" />
    </Frame>
  </Step>

  <Step title="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.

    <Frame caption="Pantalla de configuración de FCM">
      <img src="https://mintcdn.com/onesignal/uWz0BIZj_JUi1RGq/images/mobile/onesignal-fcm-configuration.png?fit=max&auto=format&n=uWz0BIZj_JUi1RGq&q=85&s=5fb6b977bf1517c453b1c0b0c9b57274" alt="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" width="1780" height="702" data-path="images/mobile/onesignal-fcm-configuration.png" />
    </Frame>
  </Step>

  <Step title="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.

    <Warning>
      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?](#how-do-i-check-my-service-account-permissions).
    </Warning>
  </Step>
</Steps>

<Check>
  Su aplicación de OneSignal ahora está conectada a Firebase Cloud Messaging (V1). A continuación, siga [Configuración del SDK móvil](./mobile-sdk-setup) para el SDK que esté usando para instalar e inicializar OneSignal en su aplicación.
</Check>

***

## Preguntas frecuentes

<h3 id="how-do-i-check-my-service-account-permissions">
  ¿Cómo verifico los permisos de mi Service Account? \\
</h3>

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.

<Steps>
  <Step title="Abrir IAM en Google Cloud Console">
    Inicie sesión en [Google Cloud Console](https://console.cloud.google.com/), seleccione el proyecto vinculado a su aplicación de Firebase y vaya a **IAM & Admin > IAM**.
  </Step>

  <Step title="Encontrar su Service Account">
    Haga coincidir el correo del principal con el campo `client_email` en su clave privada cargada.
  </Step>

  <Step title="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.
  </Step>

  <Step title="Guardar">
    Haga clic en **Save**. Los cambios de IAM pueden tardar un minuto en aplicarse.
  </Step>
</Steps>

### ¿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.

<Warning>
  Los usuarios dejarán de recibir notificaciones push hasta que vuelvan a abrir la aplicación y generen nuevos tokens.
</Warning>

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](/reference/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](/reference/view-apps).

<h3 id="what-is-firebase-cloud-messaging-and-why-does-onesignal-need-a-service-account-private-key">
  ¿Qué es Firebase Cloud Messaging y por qué OneSignal necesita una clave privada de Service Account? \\
</h3>

**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](https://cloud.google.com/iam/docs/service-account-overview).

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Configuración del SDK móvil" icon="mobile-screen" href="./mobile-sdk-setup">
    Instale e inicialice el SDK de OneSignal en su aplicación Android.
  </Card>

  <Card title="Configuración de push móvil" icon="bell" href="./mobile-push-setup">
    Pasos de configuración específicos para Android, iOS y otras plataformas móviles.
  </Card>

  <Card title="Configuración de push de Huawei" icon="mobile" href="./authorize-onesignal-to-send-huawei-push">
    Autorice a OneSignal a enviar push a aplicaciones Huawei distribuidas a través de Huawei App Gallery.
  </Card>

  <Card title="Configuración de push web" icon="globe" href="./web-push-setup">
    Configure notificaciones push para sitios web.
  </Card>
</Columns>
