# đŸ”„ Guide de configuration Firebase Ce guide vous aidera Ă  configurer Firebase pour WalletTracker. ## Étape 1 : CrĂ©er un projet Firebase 1. Allez sur [Firebase Console](https://console.firebase.google.com/) 2. Cliquez sur "Ajouter un projet" 3. Entrez le nom du projet : **WalletTracker** 4. DĂ©sactivez Google Analytics (optionnel) 5. Cliquez sur "CrĂ©er le projet" ## Étape 2 : Ajouter une application Web 1. Dans la console Firebase, cliquez sur l'icĂŽne **Web** () 2. Enregistrez l'application avec le nom : **WalletTracker** 3. Cochez "Configurer Firebase Hosting" (optionnel) 4. Cliquez sur "Enregistrer l'application" 5. **Copiez les identifiants de configuration** qui s'affichent ## Étape 3 : Configurer l'application 1. Ouvrez le fichier `src/config/firebase.ts` 2. Remplacez les valeurs par dĂ©faut par vos identifiants Firebase : ```typescript const firebaseConfig = { apiKey: "AIzaSy...", // Votre clĂ© API authDomain: "wallettracker-xxx.firebaseapp.com", projectId: "wallettracker-xxx", storageBucket: "wallettracker-xxx.appspot.com", messagingSenderId: "123456789", appId: "1:123456789:web:abc123" }; ``` ## Étape 4 : Activer Authentication 1. Dans la console Firebase, allez dans **Authentication** 2. Cliquez sur "Commencer" 3. Dans l'onglet **Sign-in method**, activez : - **Email/Password** : Activez cette mĂ©thode - Cliquez sur "Enregistrer" ## Étape 5 : CrĂ©er la base de donnĂ©es Firestore 1. Dans la console Firebase, allez dans **Firestore Database** 2. Cliquez sur "CrĂ©er une base de donnĂ©es" 3. SĂ©lectionnez **Mode production** 4. Choisissez un emplacement (par exemple : `europe-west1` pour l'Europe) 5. Cliquez sur "Activer" ## Étape 6 : Configurer les rĂšgles Firestore 1. Dans Firestore Database, allez dans l'onglet **RĂšgles** 2. Copiez le contenu du fichier `firestore.rules` de ce projet 3. Collez-le dans l'Ă©diteur de rĂšgles Firebase 4. Cliquez sur "Publier" Les rĂšgles configurĂ©es permettent : - ✅ Chaque utilisateur peut lire/Ă©crire uniquement ses propres donnĂ©es - ✅ Protection contre les accĂšs non autorisĂ©s - ✅ Validation des champs requis lors de la crĂ©ation ## Étape 7 : Activer Storage (optionnel) Pour stocker les photos de tickets : 1. Dans la console Firebase, allez dans **Storage** 2. Cliquez sur "Commencer" 3. SĂ©lectionnez **Mode production** 4. Cliquez sur "Suivant" puis "TerminĂ©" 5. Dans l'onglet **RĂšgles**, utilisez ces rĂšgles : ``` rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /users/{userId}/{allPaths=**} { allow read, write: if request.auth != null && request.auth.uid == userId; } } } ``` ## Étape 8 : CrĂ©er les index Firestore (si nĂ©cessaire) Si vous rencontrez des erreurs de requĂȘte, Firebase vous fournira un lien pour crĂ©er automatiquement les index nĂ©cessaires. Les index recommandĂ©s : ### Collection `transactions` - Champs : `userId` (Ascending), `date` (Descending) - Champs : `userId` (Ascending), `type` (Ascending), `date` (Descending) - Champs : `userId` (Ascending), `category` (Ascending), `date` (Descending) ### Collection `subscriptions` - Champs : `userId` (Ascending), `nextPaymentDate` (Ascending) ## Étape 9 : Tester la configuration 1. Lancez l'application : `npm start` 2. CrĂ©ez un compte de test 3. VĂ©rifiez dans la console Firebase : - **Authentication** : Votre utilisateur doit apparaĂźtre - **Firestore** : Les collections doivent se crĂ©er automatiquement ## 🔐 SĂ©curitĂ© ### Bonnes pratiques 1. **Ne jamais commiter vos identifiants Firebase** dans Git 2. Utilisez des variables d'environnement pour la production 3. Activez l'authentification Ă  deux facteurs sur votre compte Firebase 4. Surveillez l'utilisation dans la console Firebase 5. Configurez des alertes de budget ### Limites du plan gratuit (Spark) - **Firestore** : 1 Go de stockage, 50k lectures/jour, 20k Ă©critures/jour - **Authentication** : 10k vĂ©rifications/mois - **Storage** : 5 Go de stockage, 1 Go de tĂ©lĂ©chargement/jour Pour une utilisation en production avec plusieurs utilisateurs, envisagez le plan **Blaze** (paiement Ă  l'usage). ## 🆘 DĂ©pannage ### Erreur : "Firebase: Error (auth/invalid-api-key)" - VĂ©rifiez que vous avez bien copiĂ© l'`apiKey` correctement - Assurez-vous qu'il n'y a pas d'espaces avant/aprĂšs ### Erreur : "Missing or insufficient permissions" - VĂ©rifiez que les rĂšgles Firestore sont bien publiĂ©es - Assurez-vous que l'utilisateur est bien authentifiĂ© ### Les catĂ©gories ne s'affichent pas - VĂ©rifiez que l'utilisateur est connectĂ© - Les catĂ©gories par dĂ©faut se crĂ©ent automatiquement au premier ajout de transaction ## 📚 Ressources - [Documentation Firebase](https://firebase.google.com/docs) - [Firestore Security Rules](https://firebase.google.com/docs/firestore/security/get-started) - [Firebase Authentication](https://firebase.google.com/docs/auth) - [React Native Firebase](https://rnfirebase.io/) ## ✅ Checklist de configuration - [ ] Projet Firebase créé - [ ] Application Web ajoutĂ©e - [ ] Identifiants copiĂ©s dans `firebase.ts` - [ ] Authentication activĂ©e (Email/Password) - [ ] Firestore Database créée - [ ] RĂšgles Firestore configurĂ©es - [ ] Storage activĂ© (optionnel) - [ ] Application testĂ©e avec succĂšs Une fois toutes ces Ă©tapes complĂ©tĂ©es, votre application WalletTracker est prĂȘte Ă  ĂȘtre utilisĂ©e ! 🎉