feat: Enhance trip creation and management features with user validation, improved error handling, and Firestore integration
This commit is contained in:
@@ -71,7 +71,6 @@ class UserProvider extends ChangeNotifier {
|
||||
try {
|
||||
// Structurer les données pour que tous les utilisateurs aient le même format
|
||||
final userDoc = {
|
||||
'id': userData['uid'],
|
||||
'email': userData['email'] ?? '',
|
||||
'nom': '', // Nom vide pour tous les utilisateurs
|
||||
'prenom': userData['name'] ?? userData['nom'] ?? 'Utilisateur', // Nom complet dans prenom
|
||||
@@ -79,7 +78,7 @@ class UserProvider extends ChangeNotifier {
|
||||
|
||||
await _firestore.collection('users').doc(userData['uid']).set(userDoc);
|
||||
|
||||
// Retourner l'objet User créé
|
||||
// Retourner l'objet User créé avec l'ID correct
|
||||
return User.fromMap({...userDoc, 'id': userData['uid']});
|
||||
} catch (e) {
|
||||
print('Erreur lors de la création de l\'utilisateur: $e');
|
||||
@@ -87,6 +86,25 @@ class UserProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
// Méthode pour obtenir l'ID d'un utilisateur par son email
|
||||
Future<String?> getUserIdByEmail(String email) async {
|
||||
try {
|
||||
final QuerySnapshot querySnapshot = await _firestore
|
||||
.collection('users')
|
||||
.where('email', isEqualTo: email.trim())
|
||||
.limit(1)
|
||||
.get();
|
||||
|
||||
if (querySnapshot.docs.isNotEmpty) {
|
||||
return querySnapshot.docs.first.id;
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
print('Erreur lors de la recherche de l\'utilisateur par email: $e');
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Initialiser l'utilisateur connecté
|
||||
Future<void> initializeUser() async {
|
||||
firebase_auth.User? firebaseUser = _authService.currentUser;
|
||||
@@ -99,3 +117,4 @@ class UserProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user