Mis à jour · 2026-08-28

Firebase Auth

Comptes, cloud save Firestore et synchronisation.

Firebase Auth & cloud save

Comptes joueur pour cloud save (Firestore) et futur FCM. Sans variables Firebase, le jeu reste 100 % local (Dexie).

Console Firebase

  1. Firebase Console → projet
  2. Authentication → Google + Email link (pas mot de passe)
  3. Authorized domains : localhost, prod, previews
  4. Firestore Database → créer (mode prod) → déployer firebase/firestore.rules
  5. Project settings → Web app → config SDK → .env

Variables .env

Voir .env.example (NUXT_PUBLIC_FIREBASE_*).

UX implémentée

EntréeComportement
Landing → /playAucune auth requise
Réglages (HUD)« Lier son compte ou se connecter »
DialogueGoogle · mail (lien magique) · Annuler
Pas de save cloudContinue la partie locale + upload auto (retry si échec)
Save cloud + partie neuveReprise cloud auto
Save cloud + partie localeDialogue scores : reprendre compte / garder local (confirm écrasement) / plus tard
DéconnexionDexie conservé sur l’appareil
Sync continueUpload auto (3 s après changement, à la fermeture d’onglet, retry 15 s si réseau)
Multi-appareilListener Firestore onSnapshot + poll 60 s : reprise auto si pas de changement local, sinon dialogue conflit

Architecture

HudSettingsMenu → AuthAccountDialog
               → CloudSaveConflictDialog
useAccountSync → reconcile après auth + upload auto + listener Firestore (`onSnapshot`)
app/lib/firebase/cloudSave.ts → Firestore saves/{uid}
@game/* → inchangé (normalizeGameState à l’import/export)

Dev console

window.__gearuna.auth
window.__gearuna.game

Checklist prod

  • Domaines autorisés
  • Règles Firestore déployées
  • Email link activé
  • Test PWA standalone (popup Google)
  • Mentions / confidentialité (données compte)