firebase / firebase/FirebaseUI-Flutter

[firebase_ui_auth] - exception is only throw one time when using startMFAVerification

Open
#481 6 comments 0 reactions 0 assignees View on GitHub
Keep Open Needs Attention
Dominant language
Dart
Stars
151
Forks
141
Avg merge
2d 11h
Merged PRs (30d)
6

Description

### Is there an existing issue for this?

- [x] I have searched the existing issues and found no duplicates.

### What plugin is this bug for?

Firebase UI Auth

### What platform(s) does this bug affect?

Web

### List of dependencies used.

flutter pub deps -s list

  

### Steps to reproduce

if you have this in your actions:

```
AuthStateChangeAction((context, state) async {
try {
await startMFAVerification(
resolver: state.resolver,
context: context,
);
} on FirebaseException catch (e) {
if (!context.mounted) return;
ScaffoldMessenger.of(context).hideCurrentSnackBar();
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: ErrorText(exception: e),
),
);
}
}),
```

The Exception only only catch the first time as you can see it:

![Image](https://github.com/user-attachments/assets/411b8495-771d-4cf2-9eb8-39bdf7aa74c8)

If you press a second time on the validation button

![Image](https://github.com/user-attachments/assets/ae5972e4-22d2-4e03-b645-7238e2cde05a)

The Exception is not raised to the previous catch statement....but print to the console

![Image](https://github.com/user-attachments/assets/7db91e6a-43de-4a4f-8cd0-da3f89186576)

### Expected Behavior

The the error as many time needed.

One you have an error, In was expecting form this helper method to restart:
```
provider.sendVerificationCode(
hint: hint as fba.PhoneMultiFactorInfo,
multiFactorSession: session,
action: AuthAction.none,
);
```

Otherwise once you have an error, you need to go to the previous page and type correctly the pin.
I'm expecting user to sometime do mistakes when entering the code, so this can be very annoying from an end user perspective.

### Actual Behavior

Only trigger one time

### Additional Information

_No response_

Contributor guide

Open the contributing guide

Research direction

Start at the firebase_ui_auth implementation of startMFAVerification and compare its handling of the shown provider.sendVerificationCode call after an invalid code. Reproduce the flow with AuthStateChangeAction and verify that repeated validation errors reach the surrounding FirebaseException catch, not only the first attempt.

Written by the indexing model from the issue text.

Assessment

Tech stack
dart, firebase, flutter
Domain
authentication, web-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.