# Node Gestión API – Firebase Admin

Este proyecto incluye un script de prueba para enviar notificaciones con Firebase Admin SDK.

## Configuración segura de credenciales

La opción más segura para persistir `GOOGLE_APPLICATION_CREDENTIALS` en Linux es usar un archivo de entorno protegido y cargarlo desde tu gestor de procesos (systemd o PM2). Ejemplo con systemd:

1. Crea un archivo de entorno fuera del repo, con permisos restrictivos:

```
# /etc/node-gestion-api.env
GOOGLE_APPLICATION_CREDENTIALS=/var/www/node.gestion.abianservice.com/notabser-firebase-adminsdk-fbsvc-bf88758663.json
FIREBASE_DATABASE_URL=https://<DATABASE_NAME>.firebaseio.com
```

```
sudo chown root:root /etc/node-gestion-api.env
sudo chmod 600 /etc/node-gestion-api.env
```

2. En tu servicio systemd:

```
EnvironmentFile=/etc/node-gestion-api.env
```

Si trabajas localmente, puedes usar `.env` (ya soportado por `dotenv`) y mantenerlo fuera del control de versiones.

## Script de prueba (FCM)

El script está en `src/scripts/sendTestNotification.js`.

Variables esperadas (pueden ir en `.env`):

- `GOOGLE_APPLICATION_CREDENTIALS` (ruta absoluta)
- `FIREBASE_DATABASE_URL` (opcional)
- `FCM_TEST_TOKEN`
- `FCM_TEST_TITLE` (opcional)
- `FCM_TEST_BODY` (opcional)

## Uso rápido

Ejemplo de envío real:

```
node src/scripts/sendTestNotification.js --token "<FCM_DEVICE_TOKEN>" --title "Hola" --body "Prueba"
```

Ejemplo de validación sin enviar (dry run):

```
node src/scripts/sendTestNotification.js --token "<FCM_DEVICE_TOKEN>" --dry-run
```

Self-test de inicialización (no envía):

```
node src/scripts/sendTestNotification.js --self-test
```

También puedes usar el script de npm:

```
npm run notify:test -- --token "<FCM_DEVICE_TOKEN>" --dry-run
```
