feat: refactor account deletion to handle requires-recent-login and update Android package ID.

This commit is contained in:
Van Leemput Dayron
2025-11-28 19:01:01 +01:00
parent b1f86b1c6a
commit 0668fcad57
7 changed files with 336 additions and 124 deletions

View File

@@ -122,11 +122,16 @@ class AuthRepository {
String firstname,
) async {
try {
final firebaseUser = await _authService.signInWithGoogle();
firebase_auth.User? firebaseUser = _authService.currentUser;
if (firebaseUser.user != null) {
if (firebaseUser == null) {
final userCredential = await _authService.signInWithGoogle();
firebaseUser = userCredential.user;
}
if (firebaseUser != null) {
// Check if user already exists in Firestore
final existingUser = await getUserFromFirestore(firebaseUser.user!.uid);
final existingUser = await getUserFromFirestore(firebaseUser.uid);
if (existingUser != null) {
return existingUser;
@@ -134,12 +139,12 @@ class AuthRepository {
// Create new user document for first-time Google sign-in
final user = User(
id: firebaseUser.user!.uid,
email: firebaseUser.user!.email ?? '',
id: firebaseUser.uid,
email: firebaseUser.email ?? '',
nom: name,
prenom: firstname,
phoneNumber: phoneNumber,
profilePictureUrl: firebaseUser.user!.photoURL ?? 'Unknown',
profilePictureUrl: firebaseUser.photoURL ?? 'Unknown',
platform: 'google',
);
@@ -181,22 +186,27 @@ class AuthRepository {
String firstname,
) async {
try {
final firebaseUser = await _authService.signInWithApple();
firebase_auth.User? firebaseUser = _authService.currentUser;
if (firebaseUser.user != null) {
final existingUser = await getUserFromFirestore(firebaseUser.user!.uid);
if (firebaseUser == null) {
final userCredential = await _authService.signInWithApple();
firebaseUser = userCredential.user;
}
if (firebaseUser != null) {
final existingUser = await getUserFromFirestore(firebaseUser.uid);
if (existingUser != null) {
return existingUser;
}
final user = User(
id: firebaseUser.user!.uid,
email: firebaseUser.user!.email ?? '',
id: firebaseUser.uid,
email: firebaseUser.email ?? '',
nom: name,
prenom: firstname,
phoneNumber: phoneNumber,
profilePictureUrl: firebaseUser.user!.photoURL ?? 'Unknown',
profilePictureUrl: firebaseUser.photoURL ?? 'Unknown',
platform: 'apple',
);