Guide rapide de déploiement

Suivez ces étapes pour lancer Foro Redención en local et valider l'expérience complète (frontend + fonctions serverless).

Prérequis

  • Node.js 18+ et npm à jour.
  • Expo CLI (npm install -g expo).
  • Projet Firebase configuré (Auth + Firestore + FCM).
  • Compte OneSignal avec l'ID d'application (oneSignalAppId dans app.config.js).

Configuration locale

  1. Ouvrez app/foro et exécutez npm install.
  2. Copiez votre google-services.json dans android/app.
  3. Mettez à jour src/lib/firebase.js avec les identifiants du projet.
  4. Lancez npx expo start et scannez le QR avec Expo Go.

Variables importantes

  • ANDROID_GOOGLE_SERVICES_JSON : chemin alternatif pour les builds automatisés.
  • EXPO_PUBLIC_FIREBASE_* : variables publiques pour initialiser Firebase.
  • oneSignalAppId : défini dans app.config.js (section extra).

Commandes essentielles

Commande Description
npx expo start Démarre l'application en mode développement (Android/iOS/Web).
npx expo run:android Génère une build native Android.
node api/news.js Teste l'endpoint news en local avec vercel dev ou node.
node api/send-fcm-push.js Simule l'envoi de push (nécessite FIREBASE_SERVICE_ACCOUNT).

Tests et vérification

Avant toute publication :

  • Lancez npx expo start --web pour valider les deep-links et l'auth sur navigateur.
  • Utilisez des appareils physiques ou émulateurs pour tester les notifications push.
  • Vérifiez les règles Firestore avec le simulateur pour posts, articles et messages.

Dépannage rapide

  • Notifications muettes : assurez-vous que le son est activé dans OneSignal et que l'appareil n'est pas en mode silencieux.
  • Erreur 401 : contrôlez que le token Firebase ID est envoyé dans Authorization: Bearer.
  • Build Android en échec : vérifiez la présence de android/app/google-services.json et la correspondance du package.

Bonnes pratiques

  • Gardez Expo/React Native alignés sur la version 53.
  • Enregistrez les tokens FCM après authentification via registerFcmToken.
  • Configurez des règles Firestore restreignant lecture/écriture aux membres.
  • Désactivez les logs OneSignal avant la mise en production.