mobile_team/lib/providers/auth_provider.dart
2026-04-16 15:06:41 +05:30

46 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import '../models/user_model.dart';
import '../services/auth_service.dart';
class AuthProvider extends ChangeNotifier {
final AuthService _authService = AuthService();
UserModel? _user;
bool _isLoading = false;
UserModel? get user => _user;
bool get isLoading => _isLoading;
bool get isAuthenticated => _user != null;
AuthProvider() {
_authService.userStream.listen((User? firebaseUser) async {
if (firebaseUser != null) {
_user = await _authService.getUser(firebaseUser.uid);
} else {
_user = null;
}
notifyListeners();
});
}
Future<void> login(String email, String password) async {
_isLoading = true;
notifyListeners();
try {
_user = await _authService.login(email, password);
} catch (e) {
_isLoading = false;
notifyListeners();
rethrow;
}
_isLoading = false;
notifyListeners();
}
Future<void> logout() async {
await _authService.logout();
_user = null;
notifyListeners();
}
}