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
165 lines
4.8 KiB
Markdown
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! 🎉** |