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 (
oneSignalAppIdenapp.config.js).
Configuración local
- Abre el directorio
app/foroy ejecutanpm install. - Copia tu
google-services.jsondentro deandroid/app(ya referenciado enapp.config.js). - Actualiza
src/lib/firebase.jscon las credenciales de tu proyecto (API key, authDomain, etc.). - En Expo, ejecuta
npx expo startpara 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 enapp.config.js).oneSignalAppId: definido enapp.config.jsdentro deextra.
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 --webpara 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 (
registerFcmTokense ejecuta enApp.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: Bearery que no expiró. - Build Android falla: asegúrate de que
android/app/google-services.jsonexista y coincida con el paquete declarado enapp.config.js.