Closed reimager closed 11 months ago
I had a chance to look at this. Here is something I hacked together: https://github.com/remodel-ai/FirebaseUI-Flutter/commit/69e2c42bfd3be85682635875b28f0f6a4e7cfc32
I can't submit a PR because I can't generate the translations
Basically it just adds: 1) handling of PlatformException which seems to be the most common exception in my experience 2) Changes localizeException to let us override the localization on any exception type not just FirebaseAuthException 3) Also passes original text to localizeException so it can choose to provide a new text or provide the original text
Then this allows me as a user to do something like:
ErrorText.localizeError = (BuildContext context, Exception e, String text) {
if (e is PlatformException) {
if (e.code == "network_error") {
return AppLocalizations.of(context)!.networkError;
}
}
return text;
};
to easily customize the network_error exception message
Thank you!
Is there an existing issue for this?
What plugin is this bug for?
Firebase UI Auth
What platform(s) does this bug affect?
Android
List of dependencies used.
flutter pub deps -s list
Steps to reproduce
1) Create a working google oauth flutter configuration using SignInScreen 2) Sign out. 3) Disable DNS (or disconnect from the internet) in some way. 4) Try to Sign in with Google. It displays "An unknown error occurred"
Expected Behavior
I would expect this fairly common scenario to have a defined error message. "Failed to connect to Google" "Failed to connect to Google. Failed to resolve hostname" "Failed to connect to Google. Invalid Certificate" etc etc
or at least some way to customize this error? short of that even displaying the unlocalized exception message would be better than nothing as at least it gives the user some hint or information at which we can help them.
Users often lose connection, or are behind a captive portal, or have issues with SSL connection due to inspection, or other such scenarios that prevent a secure connection to the google servers.
Actual Behavior
It displays "An unknown error occurred"
Additional Information
Also I tried:
based on https://github.com/firebase/FirebaseUI-Flutter/commit/a36884d73228a33a4c4b061e095f4939bf671d8e but it appears that localizeError is never called. Maybe I am using it wrong?