FirebaseUI-Flutter icon indicating copy to clipboard operation
FirebaseUI-Flutter copied to clipboard

🐛 [firebase_ui_auth] EmailVerifiedAction can't trigger callback after verify email

Open Trung15010802 opened this issue 1 year ago • 21 comments

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?

Android

List of dependencies used.

flutter pub deps -s list
dependencies:
- flutter 0.0.0
  - characters 1.3.0
  - collection 1.18.0
  - material_color_utilities 0.5.0
  - meta 1.10.0
  - vector_math 2.1.4
  - web 0.3.0
  - sky_engine any
- cupertino_icons 1.0.6
- flutter_svg 2.0.9
  - flutter any
  - vector_graphics ^1.1.9+1
  - vector_graphics_codec ^1.1.9+1
  - vector_graphics_compiler ^1.1.9+1
- change_app_package_name 1.1.0
- firebase_core 2.24.2
  - firebase_core_platform_interface ^5.0.0
  - firebase_core_web ^2.10.0
  - flutter any
  - meta ^1.8.0
- firebase_ui_auth 1.11.0
  - email_validator ^2.1.17
  - firebase_auth ^4.15.0
  - firebase_core ^2.24.0
  - firebase_dynamic_links ^5.4.6
  - firebase_ui_localizations ^1.9.0
  - firebase_ui_oauth ^1.4.15
  - firebase_ui_shared ^1.4.1
  - flutter any
  - flutter_localizations any
  - meta ^1.10.0
- firebase_auth 4.15.3
  - firebase_auth_platform_interface ^7.0.9
  - firebase_auth_web ^5.8.12
  - firebase_core ^2.24.2
  - firebase_core_platform_interface ^5.0.0
  - flutter any
  - meta ^1.8.0
- google_sign_in 6.2.1
  - flutter any
  - google_sign_in_android ^6.1.0
  - google_sign_in_ios ^5.7.0
  - google_sign_in_platform_interface ^2.4.0
  - google_sign_in_web ^0.12.0
- firebase_ui_oauth_google 1.2.15
  - firebase_auth ^4.15.0
  - firebase_ui_oauth ^1.4.15
  - flutter any
  - google_sign_in ^6.1.6
- flutter_riverpod 2.4.9
  - collection ^1.15.0
  - flutter any
  - meta ^1.4.0
  - riverpod 2.4.9
  - state_notifier >=0.7.2 dev dependencies:
  • flutter_test 0.0.0
    • flutter any
    • test_api 0.6.1
    • matcher 0.12.16
    • path 1.8.3
    • fake_async 1.3.1
    • clock 1.1.1
    • stack_trace 1.11.1
    • vector_math 2.1.4
    • async 2.11.0
    • boolean_selector 2.1.1
    • characters 1.3.0
    • collection 1.18.0
    • material_color_utilities 0.5.0
    • meta 1.10.0
    • source_span 1.10.0
    • stream_channel 2.1.2
    • string_scanner 1.2.0
    • term_glyph 1.2.1
    • web 0.3.0
  • flutter_lints 3.0.1
    • lints ^3.0.0

transitive dependencies:

  • _flutterfire_internals 1.3.16
    • collection ^1.0.0
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any
    • meta ^1.8.0
  • args 2.4.2
  • async 2.11.0
    • collection ^1.15.0
    • meta ^1.1.7
  • boolean_selector 2.1.1
    • source_span ^1.8.0
    • string_scanner ^1.1.0
  • characters 1.3.0
  • clock 1.1.1
  • collection 1.18.0
  • crypto 3.0.3
    • typed_data ^1.3.0
  • desktop_webview_auth 0.0.14
    • crypto ^3.0.3
    • flutter any
    • http ^1.0.0
    • flutter_web_plugins any
    • plugin_platform_interface ^2.1.4
  • email_validator 2.1.17
  • fake_async 1.3.1
    • clock ^1.1.0
    • collection ^1.15.0
  • firebase_auth_platform_interface 7.0.9
    • _flutterfire_internals ^1.3.16
    • collection ^1.16.0
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_auth_web 5.8.12
    • firebase_auth_platform_interface ^7.0.9
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • flutter any
    • flutter_web_plugins any
    • http_parser ^4.0.0
    • js ^0.6.3
    • meta ^1.8.0
  • firebase_core_platform_interface 5.0.0
    • collection ^1.0.0
    • flutter any
    • flutter_test any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_core_web 2.10.0
    • firebase_core_platform_interface ^5.0.0
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
    • meta ^1.8.0
  • firebase_dynamic_links 5.4.8
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • firebase_dynamic_links_platform_interface ^0.2.6+16
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_dynamic_links_platform_interface 0.2.6+16
    • _flutterfire_internals ^1.3.16
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_ui_localizations 1.9.0
    • flutter any
    • flutter_localizations any
    • path ^1.8.3
  • firebase_ui_oauth 1.4.15
    • desktop_webview_auth ^0.0.14
    • firebase_auth ^4.15.0
    • firebase_ui_auth ^1.11.0
    • firebase_ui_shared ^1.4.1
    • flutter_svg ^2.0.9
    • flutter any
  • firebase_ui_shared 1.4.1
    • flutter any
  • flutter_localizations 0.0.0
    • flutter any
    • intl 0.18.1
    • characters 1.3.0
    • clock 1.1.1
    • collection 1.18.0
    • material_color_utilities 0.5.0
    • meta 1.10.0
    • path 1.8.3
    • vector_math 2.1.4
    • web 0.3.0
  • flutter_web_plugins 0.0.0
    • flutter any
    • characters 1.3.0
    • collection 1.18.0
    • material_color_utilities 0.5.0
    • meta 1.10.0
    • vector_math 2.1.4
    • web 0.3.0
  • google_identity_services_web 0.3.0+2
    • meta ^1.3.0
    • web >=0.3.0 <0.5.0
  • google_sign_in_android 6.1.20
    • flutter any
    • google_sign_in_platform_interface ^2.2.0
  • google_sign_in_ios 5.7.1
    • flutter any
    • google_sign_in_platform_interface ^2.2.0
  • google_sign_in_platform_interface 2.4.3
    • flutter any
    • plugin_platform_interface ^2.1.0
  • google_sign_in_web 0.12.3+1
    • flutter any
    • flutter_web_plugins any
    • google_identity_services_web ^0.3.0
    • google_sign_in_platform_interface ^2.4.0
    • http >=0.13.0 <2.0.0
    • web >=0.3.0 <0.5.0
  • http 1.1.2
    • async ^2.5.0
    • http_parser ^4.0.0
    • meta ^1.3.0
    • web >=0.3.0 <0.5.0
  • http_parser 4.0.2
    • collection ^1.15.0
    • source_span ^1.8.0
    • string_scanner ^1.1.0
    • typed_data ^1.3.0
  • intl 0.18.1
    • clock ^1.1.0
    • meta ^1.0.2
    • path ^1.8.0
  • js 0.6.7
    • meta ^1.7.0
  • lints 3.0.0
  • matcher 0.12.16
    • async ^2.10.0
    • meta ^1.8.0
    • stack_trace ^1.10.0
    • term_glyph ^1.2.0
    • test_api >=0.5.0 <0.7.0
  • material_color_utilities 0.5.0
    • collection ^1.15.0
  • meta 1.10.0
  • path 1.8.3
  • path_parsing 1.0.1
    • vector_math ^2.1.0
    • meta ^1.3.0
  • petitparser 6.0.2
    • meta ^1.9.0
  • plugin_platform_interface 2.1.7
    • meta ^1.3.0
  • riverpod 2.4.9
    • meta ^1.9.0
    • stack_trace ^1.10.0
    • state_notifier >=0.7.2 <2.0.0
  • sky_engine 0.0.99
  • source_span 1.10.0
    • collection ^1.15.0
    • path ^1.8.0
    • term_glyph ^1.2.0
  • stack_trace 1.11.1
    • path ^1.8.0
  • state_notifier 1.0.0
    • meta ^1.1.8
  • stream_channel 2.1.2
    • async ^2.5.0
  • string_scanner 1.2.0
    • source_span ^1.8.0
  • term_glyph 1.2.1
  • test_api 0.6.1
    • async ^2.5.0
    • boolean_selector ^2.1.0
    • collection ^1.15.0
    • meta ^1.3.0
    • source_span ^1.8.0
    • stack_trace ^1.10.0
    • stream_channel ^2.1.0
    • string_scanner ^1.1.0
    • term_glyph ^1.2.0
  • typed_data 1.3.2
    • collection ^1.15.0
  • vector_graphics 1.1.9+1
    • flutter any
    • vector_graphics_codec 1.1.9+1
  • vector_graphics_codec 1.1.9+1
  • vector_graphics_compiler 1.1.9+1
    • args ^2.3.0
    • meta ^1.7.0
    • path_parsing ^1.0.1
    • xml ^6.3.0
    • vector_graphics_codec 1.1.9+1
    • path ^1.8.0
  • vector_math 2.1.4
  • web 0.3.0
  • xml 6.5.0
    • collection ^1.18.0
    • meta ^1.9.0
    • petitparser ^6.0.0

Steps to reproduce

Steps to Reproduce:

  1. Log in with an unverified email account.
 AuthStateChangeAction<SignedIn>(
          (context, state) {
            if (!state.user!.emailVerified) {
              Navigator.pushNamed(context, RouteName.verifyEmail);
            }
          },
        ),
  1. Navigate to the email verification page.
  2. Verify the email.
class EmailConfirmScreen extends StatelessWidget {
  const EmailConfirmScreen({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return EmailVerificationScreen(
      actions: [
        EmailVerifiedAction(
          () {
            debugPrint('EmailVerifiedAction called');

            Navigator.pushReplacementNamed(context, RouteName.authGate);
          },
        ),
        AuthCancelledAction(
          (context) {
            Navigator.pop(context);
          },
        )
      ],
    );
  }
}

  1. Despite email verification, the loading icon still appears.

Expected Behavior

Should trigger EmailVerifiedAction callback or show some UI to trigger it

Actual Behavior

infinity loading indicator

Additional Information

image image

Trung15010802 avatar Dec 21 '23 14:12 Trung15010802