45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:cloud_firestore/cloud_firestore.dart';
 | |
| import 'package:firebase_auth/firebase_auth.dart';
 | |
| import '../models/user_model.dart';
 | |
| 
 | |
| class UserService {
 | |
|   final FirebaseFirestore _firestore = FirebaseFirestore.instance;
 | |
| 
 | |
|   Future<List<UserModel>> fetchUsers() async {
 | |
|     try {
 | |
|       final snapshot = await _firestore.collection('users').get();
 | |
|       return snapshot.docs
 | |
|           .map((doc) => UserModel.fromMap(doc.data(), doc.id))
 | |
|           .toList();
 | |
|     } catch (e) {
 | |
|       print("Erreur: $e");
 | |
|       return [];
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> updateUser(UserModel user) async {
 | |
|     try {
 | |
|       await _firestore.collection('users').doc(user.uid).update(user.toMap());
 | |
|     } catch (e) {
 | |
|       print("Erreur mise à jour: $e");
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> deleteUser(String uid) async {
 | |
|     try {
 | |
|       await _firestore.collection('users').doc(uid).delete();
 | |
|     } catch (e) {
 | |
|       print("Erreur suppression: $e");
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   Future<void> resetPassword(String email) async {
 | |
|     try {
 | |
|       await FirebaseAuth.instance.sendPasswordResetEmail(email: email);
 | |
|       print("Email de réinitialisation envoyé à $email");
 | |
|     } catch (e) {
 | |
|       print("Erreur reset password: $e");
 | |
|     }
 | |
|   }
 | |
| }
 |