4.8 KiB
🔥 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
- Gehe zu Firebase Console
- Klicke auf "Projekt hinzufügen"
- Gib einen Projektnamen ein (z.B. "todo-kids-app")
- Wähle deine Einstellungen (Google Analytics optional)
- Erstelle das Projekt
2. Firebase Services aktivieren
Authentication einrichten:
- Gehe zu "Authentication" > "Get started"
- Wähle "Sign-in method"
- Aktiviere "E-Mail/Passwort"
- Speichere die Einstellungen
Firestore Database einrichten:
- Gehe zu "Firestore Database" > "Datenbank erstellen"
- Wähle "Im Testmodus starten" (für Entwicklung)
- Wähle eine Region (z.B. europe-west3 für Deutschland)
- Erstelle die Datenbank
3. Web-App konfigurieren
- Gehe zu Projekteinstellungen (Zahnrad-Symbol)
- Scrolle zu "Deine Apps" und klicke "</>"
- Gib einen App-Namen ein (z.B. "ToDo Kids Web")
- Registriere die App
- Kopiere die Konfigurationsdaten
4. Umgebungsvariablen einrichten
Öffne die Datei client/.env und füge deine Firebase-Konfiguration ein:
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:
// 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:
// 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:
// 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 Konfigurationclient/src/firebase/auth.js- Authentication Servicesclient/src/firebase/database.js- Firestore Database Servicesclient/src/contexts/FirebaseAuthContext.js- React Context für Authclient/.env- Umgebungsvariablen
Zu aktualisierende Dateien:
client/src/App.js- AuthProvider wechselnclient/src/components/LoginPage.js- Firebase Auth verwendenclient/src/components/ParentDashboard.js- Firebase Database verwendenclient/src/components/ChildrenManagement.js- Firebase Database verwendenclient/src/components/TaskManagement.js- Firebase Database verwendenclient/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:
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:
- Überprüfe die Browser-Konsole auf Fehler
- Stelle sicher, dass alle Umgebungsvariablen korrekt sind
- Überprüfe die Firebase-Konsole auf Fehler
- Teste zuerst die Authentication, dann die Database-Funktionen
📚 Nächste Schritte
- Firebase-Konfiguration einrichten
- App.js aktualisieren
- Login-Komponente migrieren
- Dashboard-Komponente migrieren
- Alle anderen Komponenten schrittweise migrieren
- Lokales Backend deaktivieren
- Testen und optimieren
Viel Erfolg bei der Migration! 🎉