From e3c0323379d196d811258c673f9c30f148d15e13 Mon Sep 17 00:00:00 2001 From: Enguerrand ARMINJON Date: Wed, 16 Apr 2025 15:58:54 +0200 Subject: [PATCH] fix(firebase_ui_auth): Avoid redundant confirmation on account deletion --- .../lib/src/widgets/delete_account_button.dart | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/firebase_ui_auth/lib/src/widgets/delete_account_button.dart b/packages/firebase_ui_auth/lib/src/widgets/delete_account_button.dart index 37bac8cf..ff112d3e 100644 --- a/packages/firebase_ui_auth/lib/src/widgets/delete_account_button.dart +++ b/packages/firebase_ui_auth/lib/src/widgets/delete_account_button.dart @@ -85,8 +85,8 @@ class _DeleteAccountButtonState extends State { void Function() pop(BuildContext context, T result) => () => Navigator.of(context).pop(result); - Future _deleteAccount() async { - bool? confirmed = !widget.showDeleteConfirmationDialog; + Future _deleteAccount({bool skipConfirmation = false}) async { + bool? confirmed = skipConfirmation || !widget.showDeleteConfirmationDialog; if (!confirmed) { final l = FirebaseUILocalizations.labelsOf(context); @@ -116,17 +116,16 @@ class _DeleteAccountButtonState extends State { final user = auth.currentUser!; await auth.currentUser?.delete(); - FirebaseUIAction.ofType(context)?.callback( + FirebaseUIAction.ofType( context, - user, - ); + )?.callback(context, user); await FirebaseUIAuth.signOut(context: context, auth: auth); } on fba.FirebaseAuthException catch (err) { if (err.code == 'requires-recent-login') { if (widget.onSignInRequired != null) { final signedIn = await widget.onSignInRequired!(); if (signedIn) { - await _deleteAccount(); + await _deleteAccount(skipConfirmation: true); } } }