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

@@ -83,20 +83,30 @@ class AuthService {
///
/// [password] - The user's current password for re-authentication
/// [email] - The user's email address for re-authentication
Future<void> deleteAccount({
required String password,
required String email,
}) async {
// Re-authenticate the user for security
AuthCredential credential = EmailAuthProvider.credential(
email: email,
password: password,
);
await currentUser!.reauthenticateWithCredential(credential);
// Delete the user account permanently
await currentUser!.delete();
await firebaseAuth.signOut();
Future<void> deleteAccount() async {
try {
await currentUser!.delete();
await firebaseAuth.signOut();
} on FirebaseAuthException catch (e) {
if (e.code == 'requires-recent-login') {
_errorService.logError(
'Delete account requires recent login',
StackTrace.current,
);
rethrow;
}
_errorService.logError(
'Error deleting account: ${e.code} - ${e.message}',
StackTrace.current,
);
rethrow;
} catch (e) {
_errorService.logError(
'Unknown error deleting account: $e',
StackTrace.current,
);
rethrow;
}
}
/// Resets the user's password after re-authentication.