Ajout d'utilisateur OK

Ajout bouton de deconnexion
This commit is contained in:
2025-05-13 19:39:29 +02:00
parent 6c158aa6cb
commit b8e4f39e4c
13 changed files with 770 additions and 79 deletions

View File

@ -22,12 +22,61 @@ class LocalUserProvider with ChangeNotifier {
/// Charge les données de l'utilisateur actuel
Future<void> loadUserData() async {
if (_auth.currentUser == null) return;
DocumentSnapshot userDoc =
await _firestore.collection('users').doc(_auth.currentUser!.uid).get();
if (userDoc.exists) {
setUser(UserModel.fromMap(
userDoc.data() as Map<String, dynamic>, userDoc.id));
if (_auth.currentUser == null) {
print('No current user in Auth');
return;
}
print('Loading user data for: ${_auth.currentUser!.uid}');
try {
DocumentSnapshot userDoc = await _firestore
.collection('users')
.doc(_auth.currentUser!.uid)
.get();
if (userDoc.exists) {
print('User document found in Firestore');
final userData = userDoc.data() as Map<String, dynamic>;
print('User data: $userData');
// Si le document n'a pas d'UID, l'ajouter
if (!userData.containsKey('uid')) {
await userDoc.reference.update({'uid': _auth.currentUser!.uid});
userData['uid'] = _auth.currentUser!.uid;
}
setUser(UserModel.fromMap(userData, userDoc.id));
print('User data loaded successfully');
} else {
print('No user document found in Firestore');
// Créer un document utilisateur par défaut
final defaultUser = UserModel(
uid: _auth.currentUser!.uid,
email: _auth.currentUser!.email ?? '',
firstName: '',
lastName: '',
role: 'USER',
phoneNumber: '',
profilePhotoUrl: '',
);
await _firestore.collection('users').doc(_auth.currentUser!.uid).set({
'uid': _auth.currentUser!.uid,
'email': _auth.currentUser!.email,
'firstName': '',
'lastName': '',
'role': 'USER',
'phoneNumber': '',
'profilePhotoUrl': '',
'createdAt': FieldValue.serverTimestamp(),
});
setUser(defaultUser);
print('Default user document created');
}
} catch (e) {
print('Error loading user data: $e');
rethrow;
}
}