Firebase (Android y iOS vía FCM)

Cómo obtener la cuenta de servicio de Firebase y subirla a PushHub.

Android siempre envía a través de Firebase Cloud Messaging (FCM). Si tu app iOS también usa Firebase para push (Flutter, React Native o Cordova con Firebase), esta misma credencial sirve para iOS: ver iOS vía FCM.

PushHub usa la API HTTP v1 de FCM con una cuenta de servicio. La «clave de servidor» antigua ya no existe y no sirve.

1. Crea o elige el proyecto de Firebase

En la consola de Firebase, usa el proyecto donde registraste tu app Android: el google-services.json de tu app viene de ahí.

2. Genera la clave de la cuenta de servicio

  1. Configuración del proyecto (rueda dentada) → Cuentas de servicio.
  2. Firebase Admin SDK → Generar nueva clave privada.
  3. Se descarga un archivo .json con "type": "service_account", project_id, client_email y private_key.

3. Súbela a PushHub

En el panel: Apps → tu app → Credenciales → Android (FCM) → sube el .json o pega su contenido. PushHub la valida contra Google al instante:

Resultado Qué significa
Válida Lista para enviar.
5002 Credencial inválida La clave fue revocada, el JSON está incompleto o la API de FCM no está habilitada en el proyecto.
Proyecto distinto El project_id no coincide con el de tus dispositivos: los envíos fallarán con SENDER_ID_MISMATCH.

Si la API no está habilitada: en Google Cloud Console, en el mismo proyecto, activa Firebase Cloud Messaging API (V1).

Rotar la clave

Genera una clave nueva en Firebase, súbela en PushHub (reemplaza a la anterior sin cortar los envíos) y después elimina la clave vieja en Firebase.

Errores frecuentes

  • SENDER_ID_MISMATCH: el token se generó con otro proyecto de Firebase. Revisa el google-services.json de la app.
  • UNREGISTERED: la app se desinstaló o el token cambió. PushHub marca el dispositivo como inválido y deja de enviarle.
  • THIRD_PARTY_AUTH_ERROR en iOS vía FCM: falta la llave APNs dentro de Firebase. Ver iOS vía FCM.