Ce guide vous explique comment configurer Firebase pour permettre à chaque utilisateur d'avoir son propre compte et ses propres données.
- Allez sur Firebase Console
- Cliquez sur "Ajouter un projet"
- Nom du projet :
time-progress-app(ou votre choix) - Désactivez Google Analytics (optionnel)
- Cliquez sur "Créer le projet"
- Dans votre projet Firebase, allez dans "Authentication" (menu de gauche)
- Cliquez sur "Commencer"
- Activez les méthodes de connexion :
- Email/Password : Activez l'option
- Google : Activez l'option (optionnel mais recommandé)
- Cliquez sur "Enregistrer"
- Dans le menu de gauche, allez dans "Firestore Database"
- Cliquez sur "Créer une base de données"
- Choisissez "Mode production" (nous allons configurer les règles ensuite)
- Sélectionnez un emplacement proche de vous (ex:
europe-west1pour l'Europe) - Cliquez sur "Activer"
- Dans Firestore Database, allez dans l'onglet "Règles"
- Remplacez les règles par ceci :
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Règle pour la collection 'timers'
match /timers/{timerId} {
// Les utilisateurs connectés peuvent uniquement lire/écrire leurs propres données
allow read, write: if request.auth != null && request.resource.data.userId == request.auth.uid;
allow delete: if request.auth != null && resource.data.userId == request.auth.uid;
}
}
}- Cliquez sur "Publier"
- Dans Project Settings (⚙️ en haut à gauche → Paramètres du projet)
- Descendez jusqu'à "Vos applications"
- Cliquez sur l'icône Web
</> - Nom de l'app :
time-progress-web - NE PAS cocher "Configurer Firebase Hosting" pour l'instant
- Cliquez sur "Enregistrer l'application"
- Copiez la configuration qui apparaît (elle ressemble à ça) :
const firebaseConfig = {
apiKey: "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
authDomain: "time-progress-app.firebaseapp.com",
projectId: "time-progress-app",
storageBucket: "time-progress-app.appspot.com",
messagingSenderId: "123456789012",
appId: "1:123456789012:web:XXXXXXXXXXXXXXXXXX"
};- Ouvrez le fichier
firebase-config.js - Remplacez les valeurs par celles que vous avez copiées :
const firebaseConfig = {
apiKey: "VOTRE_API_KEY", // ← Collez votre valeur ici
authDomain: "VOTRE_PROJECT_ID.firebaseapp.com",
projectId: "VOTRE_PROJECT_ID",
storageBucket: "VOTRE_PROJECT_ID.appspot.com",
messagingSenderId: "VOTRE_SENDER_ID",
appId: "VOTRE_APP_ID"
};- Renommez
app-firestore.jsenapp.js(remplacez l'ancien) :
mv app.js app-localstorage.js
mv app-firestore.js app.js- Lancez votre serveur local :
python3 -m http.server 8000- Ouvrez http://localhost:8000
- Vous devriez être redirigé vers
auth.html - Créez un compte et testez !
- Dans votre repository GitHub, allez dans Settings → Pages
- Source : Deploy from a branch
- Branch : master (ou main), folder : / (root)
- Cliquez sur Save
- Votre app sera disponible à :
https://votre-username.github.io/time-app/
IMPORTANT : Ajoutez ce domaine dans Firebase Authentication :
- Firebase Console → Authentication → Settings → Authorized domains
- Ajoutez :
votre-username.github.io
# Installer Firebase CLI
npm install -g firebase-tools
# Se connecter
firebase login
# Initialiser Firebase Hosting
firebase init hosting
# Déployer
firebase deploy --only hostingUne fois configuré, vous devriez pouvoir :
- ✅ Créer un compte avec email/password
- ✅ Se connecter avec Google
- ✅ Ajouter des périodes de temps
- ✅ Les retrouver après déconnexion/reconnexion
- ✅ Chaque utilisateur voit uniquement ses propres données
→ Vérifiez que vous avez bien copié les credentials dans firebase-config.js
→ Vérifiez les règles Firestore (étape 4)
→ Ajoutez votre domaine dans Firebase Authentication → Authorized domains