ABIANAPP_NODE_PRODUCCION/README.md
2026-02-03 15:42:04 +00:00

68 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Node Gestión API Firebase Admin
test4
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
```