todo-helden/FIREBASE_MIGRATION.md
Michi 0ebe7fa13d
Some checks failed
🚀 Continuous Integration / 🔧 Backend Tests (18.x) (push) Has been cancelled
🚀 Continuous Integration / 🔧 Backend Tests (20.x) (push) Has been cancelled
🚀 Continuous Integration / 🎨 Frontend Tests (18.x) (push) Has been cancelled
🚀 Continuous Integration / 🎨 Frontend Tests (20.x) (push) Has been cancelled
🚀 Continuous Integration / 🔍 Code Quality (push) Has been cancelled
🚀 Continuous Integration / 🔒 Security Checks (push) Has been cancelled
🚀 Continuous Integration / 🎨 Theme Tests (push) Has been cancelled
🚀 Continuous Integration / ♿ Accessibility Tests (push) Has been cancelled
🚀 Continuous Integration / 📱 Cross-Browser Tests (push) Has been cancelled
🚀 Continuous Integration / 🏗️ Build Tests (push) Has been cancelled
🚀 Continuous Integration / 📊 Performance Tests (push) Has been cancelled
🚀 Continuous Integration / 🎯 Integration Tests (push) Has been cancelled
🚀 Continuous Integration / ✅ All Tests Passed (push) Has been cancelled
Initial commit: ToDo Kids v1.0.0
2025-08-04 15:46:08 +02:00

165 lines
4.8 KiB
Markdown

# 🔥 Firebase Migration Anleitung
## Übersicht
Diese Anleitung hilft dir dabei, von dem lokalen Node.js/MongoDB Backend zu Firebase zu migrieren.
## 📋 Schritt-für-Schritt Anleitung
### 1. Firebase Projekt erstellen
1. Gehe zu [Firebase Console](https://console.firebase.google.com/)
2. Klicke auf "Projekt hinzufügen"
3. Gib einen Projektnamen ein (z.B. "todo-kids-app")
4. Wähle deine Einstellungen (Google Analytics optional)
5. Erstelle das Projekt
### 2. Firebase Services aktivieren
#### Authentication einrichten:
1. Gehe zu "Authentication" > "Get started"
2. Wähle "Sign-in method"
3. Aktiviere "E-Mail/Passwort"
4. Speichere die Einstellungen
#### Firestore Database einrichten:
1. Gehe zu "Firestore Database" > "Datenbank erstellen"
2. Wähle "Im Testmodus starten" (für Entwicklung)
3. Wähle eine Region (z.B. europe-west3 für Deutschland)
4. Erstelle die Datenbank
### 3. Web-App konfigurieren
1. Gehe zu Projekteinstellungen (Zahnrad-Symbol)
2. Scrolle zu "Deine Apps" und klicke "</>"
3. Gib einen App-Namen ein (z.B. "ToDo Kids Web")
4. Registriere die App
5. Kopiere die Konfigurationsdaten
### 4. Umgebungsvariablen einrichten
Öffne die Datei `client/.env` und füge deine Firebase-Konfiguration ein:
```env
REACT_APP_FIREBASE_API_KEY=dein_api_key
REACT_APP_FIREBASE_AUTH_DOMAIN=dein_projekt.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=dein_projekt_id
REACT_APP_FIREBASE_STORAGE_BUCKET=dein_projekt.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=deine_sender_id
REACT_APP_FIREBASE_APP_ID=deine_app_id
```
### 5. App.js aktualisieren
Ersetze den alten AuthContext mit dem neuen FirebaseAuthContext:
```javascript
// Alte Imports entfernen:
// import { AuthProvider } from './contexts/AuthContext';
// Neue Imports hinzufügen:
import { FirebaseAuthProvider } from './contexts/FirebaseAuthContext';
// Provider in App.js ändern:
function App() {
return (
<FirebaseAuthProvider>
{/* Rest deiner App */}
</FirebaseAuthProvider>
);
}
```
### 6. Komponenten aktualisieren
In allen Komponenten, die Authentication verwenden:
```javascript
// Alte Imports ersetzen:
// import { useAuth } from '../contexts/AuthContext';
// Mit neuen Imports:
import { useFirebaseAuth } from '../contexts/FirebaseAuthContext';
// Hook-Verwendung aktualisieren:
const { currentUser, login, logout } = useFirebaseAuth();
```
### 7. API-Aufrufe ersetzen
Ersetze alle Axios-API-Aufrufe mit Firebase-Funktionen:
```javascript
// Alte API-Aufrufe:
// const response = await axios.get('/api/children');
// Neue Firebase-Aufrufe:
import { getChildren } from '../firebase/database';
const result = await getChildren();
```
## 🔧 Wichtige Dateien
### Neue Firebase-Dateien:
- `client/src/firebase/config.js` - Firebase Konfiguration
- `client/src/firebase/auth.js` - Authentication Services
- `client/src/firebase/database.js` - Firestore Database Services
- `client/src/contexts/FirebaseAuthContext.js` - React Context für Auth
- `client/.env` - Umgebungsvariablen
### Zu aktualisierende Dateien:
- `client/src/App.js` - AuthProvider wechseln
- `client/src/components/LoginPage.js` - Firebase Auth verwenden
- `client/src/components/ParentDashboard.js` - Firebase Database verwenden
- `client/src/components/ChildrenManagement.js` - Firebase Database verwenden
- `client/src/components/TaskManagement.js` - Firebase Database verwenden
- `client/src/components/RewardManagement.js` - Firebase Database verwenden
## 🚀 Vorteile von Firebase
**Keine Server-Wartung** - Firebase übernimmt das Backend
**Automatische Skalierung** - Wächst mit deiner App
**Echtzeit-Updates** - Daten werden automatisch synchronisiert
**Offline-Support** - App funktioniert auch ohne Internet
**Sichere Authentication** - Professionelle Benutzer-Verwaltung
**Kostenlos für kleine Apps** - Großzügige kostenlose Limits
## 🔒 Sicherheitsregeln (später)
Nach der Migration solltest du Firestore-Sicherheitsregeln einrichten:
```javascript
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Nur authentifizierte Benutzer
match /{document=**} {
allow read, write: if request.auth != null;
}
// Benutzer können nur ihre eigenen Daten sehen
match /children/{childId} {
allow read, write: if request.auth.uid == resource.data.parentId;
}
}
}
```
## 🆘 Hilfe
Bei Problemen:
1. Überprüfe die Browser-Konsole auf Fehler
2. Stelle sicher, dass alle Umgebungsvariablen korrekt sind
3. Überprüfe die Firebase-Konsole auf Fehler
4. Teste zuerst die Authentication, dann die Database-Funktionen
## 📚 Nächste Schritte
1. Firebase-Konfiguration einrichten
2. App.js aktualisieren
3. Login-Komponente migrieren
4. Dashboard-Komponente migrieren
5. Alle anderen Komponenten schrittweise migrieren
6. Lokales Backend deaktivieren
7. Testen und optimieren
**Viel Erfolg bei der Migration! 🎉**