Guía rápida de despliegue

Sigue estos pasos para levantar Foro Redención en tu entorno de desarrollo y validar la experiencia completa (frontend + servicios serverless).

Requisitos

  • Node.js 18+ y npm actualizado.
  • Expo CLI (npm install -g expo).
  • Cuenta de Firebase con proyecto configurado (Auth + Firestore + FCM).
  • Acceso a OneSignal con la app registrada (oneSignalAppId en app.config.js).

Configuración local

  1. Abre el directorio app/foro y ejecuta npm install.
  2. Copia tu google-services.json dentro de android/app (ya referenciado en app.config.js).
  3. Actualiza src/lib/firebase.js con las credenciales de tu proyecto (API key, authDomain, etc.).
  4. En Expo, ejecuta npx expo start para iniciar el bundler y escanea el QR con la app Expo Go.

Variables relevantes

  • ANDROID_GOOGLE_SERVICES_JSON: ruta alternativa para builds automatizadas.
  • EXPO_PUBLIC_FIREBASE_*: variables públicas para inicializar Firebase (si las separas en app.config.js).
  • oneSignalAppId: definido en app.config.js dentro de extra.

Comandos esenciales

Comando Descripción
npx expo start Lanza la app en modo desarrollo (Android/iOS/Web).
npx expo run:android Genera build nativa para Android.
node api/news.js Prueba localmente el endpoint de noticias usando vercel dev o node.
node api/send-fcm-push.js Simula envíos push (requiere FIREBASE_SERVICE_ACCOUNT con credenciales válidas).

Pruebas y verificación

Antes de publicar versiones, asegúrate de validar estos escenarios básicos:

  • Ejecuta npx expo start --web para comprobar rutas deep-link y estados de sesión en navegador.
  • Usa dispositivos físicos o emuladores para validar notificaciones push con usuarios de prueba en Firebase Auth.
  • Revisa reglas de Firestore con el simulador web asegurando permisos coherentes para posts, entradas y MDs.

Buenas prácticas

  • Mantén los paquetes Expo/React Native alineados con la versión 53 para evitar incompatibilidades.
  • Registra tokens FCM solo tras autenticar al usuario (registerFcmToken se ejecuta en App.js).
  • Define reglas de seguridad en Firestore para hilos y mensajes, limitando lectura/escritura a miembros.
  • Activa logs de OneSignal en desarrollo y deshabilítalos antes de publicar (OneSignal.Debug.setLogLevel).

Solución de problemas rápidos

  • Push sin sonido: confirma que OneSignal tenga permisos de sonido habilitados en tu app y que el dispositivo no tenga modo silencioso.
  • Error 401 en endpoints: verifica que el token ID Firebase se envía en Authorization: Bearer y que no expiró.
  • Build Android falla: asegúrate de que android/app/google-services.json exista y coincida con el paquete declarado en app.config.js.