# Firebase Cloud Messaging (push gratis en uso tipico)

La app Flutter ya incluye `PushRegistrationService`. Solo falta crear el proyecto Firebase y pasar credenciales al build.

## 1. Crear proyecto Firebase

1. Entra en [Firebase Console](https://console.firebase.google.com/).
2. **Añadir proyecto** (nombre libre, p. ej. `mallorcatrabaja`).
3. Desactiva Google Analytics si no lo necesitas (opcional).

## 2. App Android

1. En el proyecto Firebase: **Añadir app** → Android.
2. **Package name**: debe coincidir con `applicationId` en `mobile_app/android/app/build.gradle.kts` (p. ej. `com.mallorcatrabaja.mallorca_trabaja`).
3. Descarga `google-services.json` y colócalo en `mobile_app/android/app/`.
4. En `mobile_app/android/settings.gradle.kts` y `app/build.gradle.kts`, aplica el plugin de Google Services según la guía de Firebase (Gradle).

## 3. Backend Laravel (FCM HTTP v1)

1. Firebase → **Configuración del proyecto** → **Cuentas de servicio** → **Generar nueva clave privada** (JSON).
2. Guarda el archivo fuera del repo (p. ej. `backend/storage/app/fcm-service-account.json`).
3. En `backend/.env`:

```env
FCM_PROJECT_ID=tu-proyecto-id
FCM_CREDENTIALS=storage/app/fcm-service-account.json
```

Alternativa temporal: token OAuth manual en `FCM_ACCESS_TOKEN` (caduca en ~1 h; solo para pruebas).

## 4. Build Flutter con defines

```bash
cd mobile_app
flutter run \
  --dart-define=API_BASE_URL=http://villearena.ddns.net/api/v1 \
  --dart-define=FIREBASE_API_KEY=... \
  --dart-define=FIREBASE_APP_ID=... \
  --dart-define=FIREBASE_MESSAGING_SENDER_ID=... \
  --dart-define=FIREBASE_PROJECT_ID=...
```

Los valores están en Firebase → Configuración del proyecto → Tus apps → SDK de Flutter.

Sin estos defines la app funciona igual; solo no registra push.

## 5. Probar

1. Inicia sesión en la app.
2. Comprueba en logs del backend que llega `POST /api/v1/device-tokens`.
3. Envía una notificación de prueba desde Firebase Console → Cloud Messaging.

## Coste

El plan Spark de Firebase suele cubrir el volumen de una app regional sin coste. Revisa cuotas en la consola si creces mucho.
