feat: refactor account deletion to handle requires-recent-login and update Android package ID.
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user