Go to file
2026-02-03 14:27:12 +00:00
node_modules first commit 2026-02-03 14:27:12 +00:00
src first commit 2026-02-03 14:27:12 +00:00
tmp first commit 2026-02-03 14:27:12 +00:00
.env first commit 2026-02-03 14:27:12 +00:00
.node-version first commit 2026-02-03 14:27:12 +00:00
app.js first commit 2026-02-03 14:27:12 +00:00
notabser-firebase-adminsdk-fbsvc-bf88758663.json first commit 2026-02-03 14:27:12 +00:00
package-lock.json first commit 2026-02-03 14:27:12 +00:00
package.json first commit 2026-02-03 14:27:12 +00:00
postman_collection.json first commit 2026-02-03 14:27:12 +00:00
README.md first commit 2026-02-03 14:27:12 +00:00

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
  1. 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