68 lines
1.7 KiB
Markdown
68 lines
1.7 KiB
Markdown
# Node Gestión API – Firebase Admin
|
||
test5
|
||
|
||
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
|
||
```
|