Skip to content

Credenciales Android (FCM)

Paso 5 de 7

Para que las notificaciones lleguen a dispositivos Android reales en producción (o Development Builds), necesitamos configurar un proyecto en Firebase y vincular sus credenciales con EAS.

Así es como se conectan las piezas: Tu App, Firebase y los servidores de Expo (EAS).

Diagrama de flujo de credenciales Android (Firebase -> App / Cloud -> EAS)

1 Nombre del Paquete (Package Name)

Igual que tú tienes un DNI o Cédula, tu App necesita un ID único en el mundo. Se llama Package Name y tiene formato de dominio inverso (ej: com.tuempresa.tuapp).

Configúralo en tu app.json bajo la sección de Android:

app.json
{
"expo": {
"android": {
"package": "com.usuario.pushmaster",
"googleServicesFile": "./google-services.json"
}
}
}

2 Configuración en Firebase Console

  1. Ve a la Consola de Firebase y crea un nuevo proyecto (ej. “PushMaster”).

    Crear Nuevo Proyecto en Firebase Console
  2. En la vista general, añade una nueva aplicación Android (icono del robot ).

  3. Importante: Usa EXACTAMENTE el mismo package que definiste en el paso anterior (ej. com.usuario.pushmaster).

    Registrar App Android con Package Name
  4. Descarga el archivo google-services.json cuando te lo ofrezca.

  5. Coloca este archivo en la raíz de tu proyecto Expo.

Terminal window
📂 /
├── src/
├── 📱 app/
└── 🧱 components/
├── ⚙️ app.json
├── <LucideItem name="Settings" size={14} client:load>google-services.json (Aquí)</LucideItem>
├── 🔧 babel.config.js
├── 📦 package.json
└── 📘 tsconfig.json

Si tu repositorio es público, NO SUBAS este archivo. Agrégalo a tu .gitignore.

Aunque contiene identificadores públicos, es una buena práctica de higiene mantenerlo fuera del control de versiones si es posible, o usar secretos de EAS si trabajas en equipo.

Antes de cualquier comando, verifica esto 3 veces. El 90% de los errores son por esto:

  1. Package Name: ¿El android.package en app.json es IDÉNTICO al de Firebase?
    • com.miempresa.appcom.miempresa.App (Las mayúsculas importan).
  2. Archivo Correcto: ¿El archivo descargado se llama exactamente google-services.json?
    • Si tu navegador lo bajó como google-services(1).json, ¡RENÓMBRALO!
  3. Ubicación: ¿Está en la raíz del proyecto (junto a package.json)?

3 Subir Credenciales a EAS

EAS necesita permiso para enviar notificaciones en tu nombre a través de los servidores de Google (FCM V1).

Ejecuta el siguiente comando en tu terminal:

Terminal window
eas credentials

Sigue el asistente interactivo:

  1. Selecciona Android.

  2. Selecciona production (generalmente las credenciales de push se comparten, pero production es lo estándar).

  3. Elige Google Service Account Key (para FCM V1).

    Menú CLI: EAS Credentials
  4. Si te pide generar una nueva (o subir una existente):

    • Ve a la consola de Firebase -> Configuración del Proyecto -> pestaña Cuentas de servicio.
    • Dale al botón azul Generar nueva clave privada.
    • Confirma la descarga. Se bajará un archivo JSON con un nombre largo y raro. Ese es el que debes subir.
    Generar Service Account Key en Firebase
    • Sube ese archivo JSON al CLI de EAS cuando te lo pida.