leafittome/lib/core/firebase/firebase_providers.dart
cschlaefke 53ee30c598 Firestore und Auth: echte Daten statt Demo, Login mit E-Mail+Passwort, Security Rules
- Datenmodell: users/{uid}, households/{id} mit memberUids, plants/locations als Subcollections
- StreamProvider liefern Live-Daten, Repositories kapseln Schreibzugriffe
- Login-Screen mit Registrierung (legt Haushalt automatisch an), Logout in Einstellungen
- Router-Redirect bei Login/Logout, firestore.rules mit Haushalts-Prinzip
- Tests auf firebase_auth_mocks + fake_cloud_firestore umgestellt
- Verifiziert: analyze/test grün, Android-Debug-Build erfolgreich

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 22:53:09 +02:00

16 lines
744 B
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
/// Zentrale Zugriffe auf die Firebase-Dienste.
///
/// Screens und Repositories nutzen ausschließlich diese Provider —
/// Tests überschreiben sie mit Mocks (MockFirebaseAuth, FakeFirebaseFirestore).
final firebaseAuthProvider = Provider<FirebaseAuth>((ref) => FirebaseAuth.instance);
final firestoreProvider = Provider<FirebaseFirestore>((ref) => FirebaseFirestore.instance);
/// Der aktuell angemeldete Nutzer (null = ausgeloggt), live aktualisiert.
final authStateProvider = StreamProvider<User?>((ref) {
return ref.watch(firebaseAuthProvider).authStateChanges();
});