Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 'Cancel' and 'Delete' actions of showDeleteConfirmationDialog pop the current view #212

Closed
1 task done
tahamaddam opened this issue Dec 9, 2023 · 19 comments · Fixed by #346 or #373
Closed
1 task done
Assignees
Labels

Comments

@tahamaddam
Copy link

Is there an existing issue for this?

  • 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, iOS

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
- 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_auth 4.15.2
  - firebase_auth_platform_interface ^7.0.8
  - firebase_auth_web ^5.8.11
  - firebase_core ^2.24.2
  - firebase_core_platform_interface ^5.0.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_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
- google_sign_in 6.2.0
  - 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
- dio 5.4.0
  - async ^2.8.2
  - http_parser ^4.0.0
  - meta ^1.5.0
  - path ^1.8.0
- hive 2.2.3
  - meta ^1.3.0
  - crypto ^3.0.0
- hive_flutter 1.1.0
  - flutter any
  - hive ^2.0.4
  - path_provider ^2.0.2
  - path ^1.8.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
- just_audio 0.9.36
  - just_audio_platform_interface ^4.2.2
  - just_audio_web ^0.4.9
  - audio_session ^0.1.14
  - rxdart >=0.26.0 <0.28.0
  - path ^1.8.0
  - path_provider ^2.0.0
  - async ^2.5.0
  - uuid >=3.0.1 <5.0.0
  - crypto ^3.0.0
  - meta ^1.3.0
  - flutter any
- audio_service 0.18.12
  - audio_service_platform_interface ^0.1.1
  - audio_service_web ^0.1.1
  - audio_session ^0.1.16
  - rxdart >=0.26.0 <0.28.0
  - flutter_cache_manager ^3.0.1
  - clock ^1.1.0
  - js ^0.6.3
  - flutter any
  - flutter_web_plugins any
- audio_session 0.1.18
  - flutter any
  - flutter_web_plugins any
  - rxdart >=0.26.0 <0.28.0
  - meta ^1.3.0
- audio_video_progress_bar 2.0.1
  - flutter any
- cached_network_image 3.3.0
  - cached_network_image_platform_interface ^3.0.0
  - cached_network_image_web ^1.1.0
  - flutter any
  - flutter_cache_manager ^3.3.1
  - octo_image ^2.0.0
- line_icons 2.0.3
  - flutter any
- path_provider 2.1.1
  - flutter any
  - path_provider_android ^2.1.0
  - path_provider_foundation ^2.3.0
  - path_provider_linux ^2.2.0
  - path_provider_platform_interface ^2.1.0
  - path_provider_windows ^2.2.0
- provider 6.1.1
  - collection ^1.15.0
  - flutter any
  - nested ^1.0.0
- rxdart 0.27.7
- shared_preferences 2.2.2
  - flutter any
  - shared_preferences_android ^2.1.0
  - shared_preferences_foundation ^2.2.0
  - shared_preferences_linux ^2.2.0
  - shared_preferences_platform_interface ^2.3.0
  - shared_preferences_web ^2.1.0
  - shared_preferences_windows ^2.2.0
- google_fonts 6.1.0
  - flutter any
  - http ^1.0.0
  - path_provider ^2.0.0
  - crypto ^3.0.0
- gap 3.0.1
  - flutter any
- flutter_secure_storage 9.0.0
  - flutter any
  - flutter_secure_storage_linux ^1.1.3
  - flutter_secure_storage_macos ^3.0.0
  - flutter_secure_storage_platform_interface ^1.0.1
  - flutter_secure_storage_web ^1.1.1
  - flutter_secure_storage_windows ^3.0.0
  - meta ^1.3.0
- flutter_slidable 3.0.1
  - flutter any
- go_router 12.1.3
  - collection ^1.15.0
  - flutter any
  - flutter_web_plugins any
  - logging ^1.0.0
  - meta ^1.7.0
- navigator_scope 1.0.1
  - flutter any
- firebase_database 10.3.8
  - firebase_core ^2.24.2
  - firebase_core_platform_interface ^5.0.0
  - firebase_database_platform_interface ^0.2.5+16
  - firebase_database_web ^0.2.3+16
  - flutter any
- firebase_ui_oauth_apple 1.2.15
  - firebase_auth ^4.15.0
  - firebase_ui_oauth ^1.4.15
  - flutter any
- flex_color_scheme 7.3.1
  - flex_seed_scheme ^1.4.0
  - flutter any
  - meta ^1.8.0
- 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
- animated_emoji 2.1.0
  - flutter any
  - lottie ^2.7.0
- just_audio_background 0.0.1-beta.11
  - just_audio_platform_interface ^4.2.2
  - audio_service ^0.18.9
  - audio_session ^0.1.14
  - flutter any
  - flutter_web_plugins any
  - meta ^1.3.0
  - rxdart >=0.26.0 <0.28.0
- path 1.8.3
- intl 0.18.1
  - clock ^1.1.0
  - meta ^1.0.2
  - path ^1.8.0

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
  • build_runner 2.4.7
    • analyzer >=4.4.0 <7.0.0
    • args ^2.0.0
    • async ^2.5.0
    • build >=2.1.0 <2.5.0
    • build_config >=1.1.0 <1.2.0
    • build_daemon ^4.0.0
    • build_resolvers ^2.0.0
    • build_runner_core ^7.2.0
    • code_builder ^4.2.0
    • collection ^1.15.0
    • crypto ^3.0.0
    • dart_style ^2.0.0
    • frontend_server_client ^3.0.0
    • glob ^2.0.0
    • graphs ^2.2.0
    • http_multi_server ^3.0.0
    • io ^1.0.0
    • js ^0.6.3
    • logging ^1.0.0
    • meta ^1.3.0
    • mime ^1.0.0
    • package_config ^2.0.0
    • path ^1.8.0
    • pool ^1.5.0
    • pub_semver ^2.0.0
    • pubspec_parse ^1.0.0
    • shelf ^1.0.0
    • shelf_web_socket ^1.0.0
    • stack_trace ^1.10.0
    • stream_transform ^2.0.0
    • timing ^1.0.0
    • watcher ^1.0.0
    • web_socket_channel ^2.0.0
    • yaml ^3.0.0
  • hive_generator 2.0.1
    • build ^2.0.0
    • source_gen ^1.0.0
    • hive ^2.0.4
    • analyzer >=4.6.0 <7.0.0
    • source_helper ^1.1.0
  • flutter_lints 3.0.1
    • lints ^3.0.0

transitive dependencies:

  • _fe_analyzer_shared 61.0.0
    • meta ^1.0.2
  • _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
  • analyzer 5.13.0
    • _fe_analyzer_shared ^61.0.0
    • collection ^1.17.0
    • convert ^3.0.0
    • crypto ^3.0.0
    • glob ^2.0.0
    • meta ^1.7.0
    • package_config ^2.0.0
    • path ^1.8.0
    • pub_semver ^2.0.0
    • source_span ^1.8.0
    • watcher ^1.0.0
    • yaml ^3.0.0
  • archive 3.4.9
    • crypto ^3.0.3
    • path ^1.8.0
    • pointycastle ^3.7.3
  • args 2.4.2
  • async 2.11.0
    • collection ^1.15.0
    • meta ^1.1.7
  • audio_service_platform_interface 0.1.1
    • flutter any
    • plugin_platform_interface ^2.0.0
    • meta ^1.3.0
  • audio_service_web 0.1.1
    • audio_service_platform_interface ^0.1.0
    • rxdart >=0.26.0 <0.28.0
    • js ^0.6.3
    • flutter any
    • flutter_web_plugins any
  • boolean_selector 2.1.1
    • source_span ^1.8.0
    • string_scanner ^1.1.0
  • build 2.4.1
    • analyzer >=1.5.0 <7.0.0
    • async ^2.5.0
    • convert ^3.0.0
    • crypto ^3.0.0
    • glob ^2.0.0
    • logging ^1.0.0
    • meta ^1.3.0
    • package_config ^2.1.0
    • path ^1.8.0
  • build_config 1.1.1
    • checked_yaml ^2.0.0
    • json_annotation ^4.5.0
    • path ^1.8.0
    • pubspec_parse ^1.0.0
    • yaml ^3.0.0
  • build_daemon 4.0.1
    • built_collection ^5.0.0
    • built_value ^8.1.0
    • crypto ^3.0.3
    • http_multi_server ^3.0.0
    • logging ^1.0.0
    • path ^1.8.0
    • pool ^1.5.0
    • shelf ^1.0.0
    • shelf_web_socket ^1.0.0
    • stream_transform ^2.0.0
    • watcher ^1.0.0
    • web_socket_channel ^2.0.0
  • build_resolvers 2.4.1
    • analyzer >=5.12.0 <7.0.0
    • async ^2.5.0
    • build ^2.0.0
    • collection ^1.17.0
    • convert ^3.1.1
    • crypto ^3.0.0
    • graphs >=1.0.0 <3.0.0
    • logging ^1.0.0
    • package_config ^2.0.0
    • path ^1.8.0
    • pool ^1.5.0
    • pub_semver ^2.0.0
    • stream_transform ^2.0.0
    • yaml ^3.0.0
  • build_runner_core 7.2.11
    • async ^2.5.0
    • build ^2.4.0
    • build_config ^1.0.0
    • build_resolvers ^2.4.0
    • collection ^1.15.0
    • convert ^3.0.0
    • crypto ^3.0.0
    • glob ^2.0.0
    • graphs ^2.0.0
    • json_annotation ^4.8.1
    • logging ^1.2.0
    • meta ^1.3.0
    • package_config ^2.0.0
    • path ^1.8.0
    • pool ^1.5.0
    • timing ^1.0.0
    • watcher ^1.0.0
    • yaml ^3.0.0
  • built_collection 5.1.1
  • built_value 8.8.0
    • built_collection ^5.0.0
    • collection ^1.15.0
    • fixnum ^1.0.0
    • meta ^1.3.0
  • cached_network_image_platform_interface 3.0.0
    • flutter any
    • flutter_cache_manager ^3.3.1
  • cached_network_image_web 1.1.0
    • cached_network_image_platform_interface ^3.0.0
    • flutter any
    • flutter_cache_manager ^3.3.1
  • characters 1.3.0
  • checked_yaml 2.0.3
    • json_annotation ^4.3.0
    • source_span ^1.8.0
    • yaml ^3.0.0
  • clock 1.1.1
  • code_builder 4.8.0
    • built_collection ^5.0.0
    • built_value ^8.0.0
    • collection ^1.15.0
    • matcher ^0.12.10
    • meta ^1.3.0
  • collection 1.18.0
  • convert 3.1.1
    • typed_data ^1.3.0
  • crypto 3.0.3
    • typed_data ^1.3.0
  • dart_style 2.3.2
    • analyzer >=5.12.0 <7.0.0
    • args >=1.0.0 <3.0.0
    • path ^1.0.0
    • pub_semver >=1.4.4 <3.0.0
    • source_span ^1.4.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
  • ffi 2.1.0
  • file 7.0.0
    • meta ^1.9.1
    • path ^1.8.3
  • firebase_auth_platform_interface 7.0.8
    • _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.11
    • firebase_auth_platform_interface ^7.0.8
    • 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_database_platform_interface 0.2.5+16
    • _flutterfire_internals ^1.3.16
    • collection ^1.14.3
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_database_web 0.2.3+16
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • firebase_database_platform_interface ^0.2.5+16
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
  • 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_shared 1.4.1
    • flutter any
  • fixnum 1.1.0
  • flex_seed_scheme 1.4.0
    • collection ^1.15.0
    • flutter any
    • meta ^1.8.0
  • flutter_cache_manager 3.3.1
    • clock ^1.1.0
    • collection ^1.15.0
    • file >=6.1.4 <8.0.0
    • flutter any
    • http >=0.13.0 <2.0.0
    • path ^1.8.0
    • path_provider ^2.0.0
    • rxdart >=0.26.0 <0.28.0
    • sqflite ^2.0.0+4
    • uuid >=3.0.0 <5.0.0
  • 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_secure_storage_linux 1.2.0
    • flutter any
    • flutter_secure_storage_platform_interface ^1.0.1
  • flutter_secure_storage_macos 3.0.1
    • flutter any
    • flutter_secure_storage_platform_interface ^1.0.1
  • flutter_secure_storage_platform_interface 1.0.2
    • flutter any
    • plugin_platform_interface ^2.0.1
  • flutter_secure_storage_web 1.1.2
    • flutter any
    • flutter_secure_storage_platform_interface ^1.0.1
    • flutter_web_plugins any
    • js ^0.6.3
  • flutter_secure_storage_windows 3.0.0
    • ffi ^2.0.0
    • flutter any
    • flutter_secure_storage_platform_interface ^1.0.1
    • path ^1.8.0
    • path_provider ^2.0.0
    • win32 ^5.0.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
  • frontend_server_client 3.2.0
    • async ^2.5.0
    • path ^1.8.0
  • glob 2.1.2
    • async ^2.5.0
    • collection ^1.15.0
    • file >=6.1.3 <8.0.0
    • path ^1.8.0
    • string_scanner ^1.1.0
  • google_identity_services_web 0.3.0+1
    • 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.0
    • flutter any
    • google_sign_in_platform_interface ^2.2.0
    • pigeon ^11.0.1
  • google_sign_in_platform_interface 2.4.3
    • flutter any
    • plugin_platform_interface ^2.1.0
  • google_sign_in_web 0.12.3
    • 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
  • graphs 2.3.1
    • collection ^1.1.0
  • http_multi_server 3.2.1
    • async ^2.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
  • io 1.0.4
    • meta ^1.3.0
    • path ^1.8.0
    • string_scanner ^1.1.0
  • js 0.6.7
    • meta ^1.7.0
  • json_annotation 4.8.1
    • meta ^1.4.0
  • just_audio_platform_interface 4.2.2
    • flutter any
    • plugin_platform_interface ^2.0.0
  • just_audio_web 0.4.9
    • just_audio_platform_interface ^4.2.2
    • flutter any
    • flutter_web_plugins any
  • lints 3.0.0
  • logging 1.2.0
  • lottie 2.7.0
    • archive ^3.0.0
    • flutter any
    • path ^1.8.0
    • vector_math ^2.1.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
  • mime 1.0.4
  • nested 1.0.0
    • flutter any
  • octo_image 2.0.0
    • flutter any
  • package_config 2.1.0
    • path ^1.8.0
  • path_parsing 1.0.1
    • vector_math ^2.1.0
    • meta ^1.3.0
  • path_provider_android 2.2.1
    • flutter any
    • path_provider_platform_interface ^2.1.0
  • path_provider_foundation 2.3.1
    • flutter any
    • path_provider_platform_interface ^2.1.0
  • path_provider_linux 2.2.1
    • ffi >=1.1.2 <3.0.0
    • flutter any
    • path ^1.8.0
    • path_provider_platform_interface ^2.1.0
    • xdg_directories >=0.2.0 <2.0.0
  • path_provider_platform_interface 2.1.1
    • flutter any
    • platform ^3.0.0
    • plugin_platform_interface ^2.1.0
  • path_provider_windows 2.2.1
    • ffi ^2.0.0
    • flutter any
    • path ^1.8.0
    • path_provider_platform_interface ^2.1.0
    • win32 >=2.1.0 <6.0.0
  • petitparser 6.0.2
    • meta ^1.9.0
  • pigeon 11.0.1
    • analyzer ^5.13.0
    • args ^2.1.0
    • collection ^1.15.0
    • meta ^1.7.0
    • path ^1.8.0
    • yaml ^3.1.1
  • platform 3.1.3
  • plugin_platform_interface 2.1.7
    • meta ^1.3.0
  • pointycastle 3.7.3
    • collection ^1.15.0
    • convert ^3.0.0
    • js ^0.6.3
  • pool 1.5.1
    • async ^2.5.0
    • stack_trace ^1.10.0
  • pub_semver 2.1.4
    • collection ^1.15.0
    • meta ^1.3.0
  • pubspec_parse 1.2.3
    • checked_yaml ^2.0.1
    • collection ^1.15.0
    • json_annotation ^4.8.0
    • pub_semver ^2.0.0
    • yaml ^3.0.0
  • shared_preferences_android 2.2.1
    • flutter any
    • shared_preferences_platform_interface ^2.3.0
  • shared_preferences_foundation 2.3.4
    • flutter any
    • shared_preferences_platform_interface ^2.3.0
  • shared_preferences_linux 2.3.2
    • file >=6.0.0 <8.0.0
    • flutter any
    • path ^1.8.0
    • path_provider_linux ^2.0.0
    • path_provider_platform_interface ^2.0.0
    • shared_preferences_platform_interface ^2.3.0
  • shared_preferences_platform_interface 2.3.1
    • flutter any
    • plugin_platform_interface ^2.1.0
  • shared_preferences_web 2.2.2
    • flutter any
    • flutter_web_plugins any
    • shared_preferences_platform_interface ^2.3.0
    • web >=0.3.0 <0.5.0
  • shared_preferences_windows 2.3.2
    • file >=6.0.0 <8.0.0
    • flutter any
    • path ^1.8.0
    • path_provider_platform_interface ^2.0.0
    • path_provider_windows ^2.0.0
    • shared_preferences_platform_interface ^2.3.0
  • shelf 1.4.1
    • async ^2.5.0
    • collection ^1.15.0
    • http_parser ^4.0.0
    • path ^1.8.0
    • stack_trace ^1.10.0
    • stream_channel ^2.1.0
  • shelf_web_socket 1.0.4
    • shelf ^1.1.0
    • stream_channel ^2.1.0
    • web_socket_channel ^2.0.0
  • sky_engine 0.0.99
  • source_gen 1.4.0
    • analyzer >=5.2.0 <7.0.0
    • async ^2.5.0
    • build ^2.1.0
    • dart_style ^2.0.0
    • glob ^2.0.0
    • path ^1.8.0
    • source_span ^1.8.0
    • yaml ^3.0.0
  • source_helper 1.3.4
    • analyzer >=5.12.0 <7.0.0
    • collection ^1.15.0
    • source_gen ^1.0.0
  • source_span 1.10.0
    • collection ^1.15.0
    • path ^1.8.0
    • term_glyph ^1.2.0
  • sprintf 7.0.0
  • sqflite 2.3.0
    • flutter any
    • sqflite_common >=2.5.0-1 <4.0.0
    • path >=1.8.0 <3.0.0
  • sqflite_common 2.5.0+2
    • synchronized >=3.0.0 <5.0.0
    • path >=1.8.0 <3.0.0
    • meta >=1.3.0 <3.0.0
  • stack_trace 1.11.1
    • path ^1.8.0
  • stream_channel 2.1.2
    • async ^2.5.0
  • stream_transform 2.1.0
  • string_scanner 1.2.0
    • source_span ^1.8.0
  • synchronized 3.1.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
  • timing 1.0.1
    • json_annotation ^4.3.0
  • typed_data 1.3.2
    • collection ^1.15.0
  • uuid 4.2.1
    • crypto ^3.0.0
    • sprintf ^7.0.0
    • meta ^1.9.1
  • 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
  • watcher 1.1.0
    • async ^2.5.0
    • path ^1.8.0
  • web 0.3.0
  • web_socket_channel 2.4.0
    • async ^2.5.0
    • crypto ^3.0.0
    • stream_channel ^2.1.0
  • win32 5.1.1
    • ffi ^2.1.0
  • xdg_directories 1.0.3
    • meta ^1.3.0
    • path ^1.8.0
  • xml 6.5.0
    • collection ^1.18.0
    • meta ^1.9.0
    • petitparser ^6.0.0
  • yaml 3.1.2
    • collection ^1.15.0
    • source_span ^1.8.0
    • string_scanner ^1.1.0

Steps to reproduce

This is the code for my ProfileScreen()

ProfileScreen(
        providers: [
          EmailAuthProvider(),
          AppleProvider(),
          GoogleProvider(clientId: googleClientID),
        ],
        showDeleteConfirmationDialog: true,
        showUnlinkConfirmationDialog: true,
        actions: [
          SignedOutAction((context) {
            context.goNamed('login');
          }),
          AccountDeletedAction((context, user) {
            context.goNamed('login');
          })
        ],
      );

The confirmation dialog does appear when press the 'Delete Account' button, but choosing either 'Cancel' or 'Yes, Delete' pops out the current view and dialog can't be dismissed. Video below:

firebase_ui_auth_account_delete_dialog.mp4

Expected Behavior

  1. On press of 'cancel' option on alert dialog, I expects the dialog to dismiss.
  2. On press of 'yes, delete' option on alert dialog, I expect the current dialog to dismiss and new dialog of re-authenticate to appear and on successful re-authentication, deletes the account and go to 'login'' screen.

Actual Behavior

  1. On press of 'cancel' option on alert dialog, dialog remain on screen and view pops.
  2. On press of 'yes, delete' option on alert dialog, dialog remain on screen and view pops. Account not deleted.

Additional Information

No response

@danagbemava-nc
Copy link
Contributor

Hi @tahamaddam, can you please provide a complete minimal reproducible code sample so that we can investigate this issue? I tested with the plugin example app and it works just fine for me.

screen-20231211-112128.mp4

@danagbemava-nc danagbemava-nc added the blocked: customer response Waiting for customer response, e.g. more information was requested. label Dec 11, 2023
@tahamaddam
Copy link
Author

Thanks for your attention. My app is a (Bottom) tab based app, which is set up using the go_router like this

final _rootNavigatorKey = GlobalKey<NavigatorState>();
final _sectionNavigatorKey = GlobalKey<NavigatorState>();

final goRouterConfig = GoRouter(
  navigatorKey: _rootNavigatorKey,
  initialLocation: '/explore',
 
  routes: [
    StatefulShellRoute.indexedStack(
      builder: (context, state, navigationShell) =>
          ScaffoldWithNavBar(navigationShell: navigationShell),
      branches: [
        StatefulShellBranch(
          navigatorKey: _sectionNavigatorKey,
          routes: [
            GoRoute(
                path: '/explore',
                name: "explore",
                builder: (context, state) => const ExploreView(),
                routes: [
                  
                ]),
          ],
        ),
        StatefulShellBranch(
          routes: [
            GoRoute(
              path: '/library',
              name: "library",
              builder: (context, state) => const LibraryView(),
              routes: []
            ),
          ],
        ),
        StatefulShellBranch(
          routes: [
            GoRoute(
              path: '/playing',
              name: "episodes-player",
              builder: (context, state) => const EpisodesPlayer(),
            ),
          ],
        ),
        StatefulShellBranch(
          routes: [
            GoRoute(
              path: '/settings',
              name: "settings",
              builder: (context, state) => const SettingsView(),
              routes: [
                GoRoute(
                  path: 'profile',
                  name: 'profile',
                  builder: (context, state) => const ProfileView(),
                ),
                GoRoute(
                  path: 'inapp',
                  name: 'inappInfo',
                  builder: (context, state) => const InAppInfo(),
                ),
                // Add other routes here...
              ],
            ),
          ],
        ),
      ],
    ),
  ],
);

The ProfileScreen() is at /settings/profile The full code for ProfileScreen() is this:

import 'package:firebase_auth/firebase_auth.dart' hide EmailAuthProvider;
import 'package:firebase_ui_auth/firebase_ui_auth.dart';
import 'package:firebase_ui_oauth_apple/firebase_ui_oauth_apple.dart';
import 'package:firebase_ui_oauth_google/firebase_ui_oauth_google.dart';
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../../configurations/constants/google_client_id.dart';

class ProfileView extends StatefulWidget {
  const ProfileView({super.key});

  @override
  State<ProfileView> createState() => _ProfileViewState();
}

class _ProfileViewState extends State<ProfileView> {
  final user = FirebaseAuth.instance.currentUser;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Profile'),
      ),
      body: ProfileScreen(
        providers: [
          EmailAuthProvider(),
          AppleProvider(),
          GoogleProvider(clientId: googleClientID),
        ],
        showDeleteConfirmationDialog: true,
        showUnlinkConfirmationDialog: true,
        actions: [
          SignedOutAction((context) {
            context.goNamed('login');
          }),
          AccountDeletedAction((context, user) {
            context.goNamed('login');
          })
        ],
      ),
    );
  }
}

The issue is with both the cancel and Delete action, which pop the view out. I suspect this might be due to conflict with go_router navigation? I don't see any other code in my project, that is relevant for this issue that needs to be shared.

@danagbemava-nc
Copy link
Contributor

Hi @tahamaddam, if you use navigator instead of go_router, do you still get this issue?

@tahamaddam
Copy link
Author

Actually, the first action (SignedOutAction) is correctly working with context.goNamed(). For AccountDeletedAction , I tried to use Navigator too but that doesn't solve the issue as the issue lies in the alert dialog which doesn't dismiss (when choose Cancel or Yes, Delete) as well as pop the view (as can be seen in the shared video)

@danagbemava-nc
Copy link
Contributor

That's odd. I just tried the plugin example app again and it worked just fine. I did notice one thing, however, your ProfileScreen is wrapped in a Scaffold, can you try removing that to see if it works?

@tahamaddam
Copy link
Author

Thanks, just tried but no luck.

@danagbemava-nc
Copy link
Contributor

Hi @tahamaddam, it would help our investigation if you could provide a complete minimal reproducible code sample in a repo that we can clone. It doesn't have to be your actual project. Just enough code that we can use to reproduce and start investigating.

@tahamaddam
Copy link
Author

Thanks, I will try that and share the repo with you. I forgot to share the exception when the dialog stays on screen even after tap on cancel or Delete

════════ Exception caught by gesture ═══════════════════════════════════════════
The following assertion was thrown while handling a gesture:
This widget has been unmounted, so the State no longer has a context (and should be considered defunct).
Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active.

@tahamaddam
Copy link
Author

tahamaddam commented Dec 16, 2023

Hi @tahamaddam, it would help our investigation if you could provide a complete minimal reproducible code sample in a repo that we can clone. It doesn't have to be your actual project. Just enough code that we can use to reproduce and start investigating.

I have added you as a collaborator on the repository. After Sign-in, go to Settings> Tap the button and then from the ProfileScreen() view you can try to delete the account.

@danagbemava-nc
Copy link
Contributor

Thanks for the sample, I can reproduce the issue. I think this might have to do with go_router's indexed stack or how go_router interacts with dialogs, but I can't say for sure.

The action already calls Navigator.pop internally which is why it pops to the previous page but not the dialog. Perhaps exposing the pop action for the DeleteAccountButton might help.

This did not reproduce with the plugin example app (it doesn't use go_router, so that may be why).

Labeling for further investigation.

cc @lesnitsky

Added code sample below (zipped)

Flutter_Fire-master.zip

@danagbemava-nc danagbemava-nc added auth and removed blocked: customer response Waiting for customer response, e.g. more information was requested. in triage labels Dec 19, 2023
@lesnitsky lesnitsky self-assigned this Dec 19, 2023
@tahamaddam
Copy link
Author

Thanks a lot for looking into this and confirming the bug. I would like to add:

  • The Navigator.pop does work with go_router. I use it to remove the dialog at other places in the app.
  • Even when you tap the 'Delete' action on the Delete Account dialog, it doesn't delete the account. The logic should first await for account deletion and then pop the dialog (followed by whatever action user choose under AccountDeletedAction)

@tahamaddam
Copy link
Author

As a workaround, is there a way to exclude the Account Delete Button from the ProfileScreen()?

@danagbemava-nc

@danagbemava-nc
Copy link
Contributor

If you don't include the AccountDeleteAction, it should not show up

@tahamaddam
Copy link
Author

tahamaddam commented Dec 22, 2023

If you don't include the AccountDeleteAction, it should not show up

I tried excluding AccountDeleteAction from ProfileScreen() actions. I also made sure not to use showDeleteConfirmationDialog but the Delete account button is still there.

++ I also realized even when I am not using the showDeleteConfirmationDialog and where user needs re-authentication, after re-authentication, it again pops user back and does not delete the account. Delete user is only successful when no re-authentication is needed.

@tahamaddam
Copy link
Author

Hello, sorry to bother you on holidays. Is there any solution or workaround for this problem in short run? Thanks.

@danagbemava-nc
Copy link
Contributor

Hi @tahamaddam, unfortunately, I am not aware of any workarounds at this time

@tahamaddam
Copy link
Author

Any update on this matter? @lesnitsky

@haraldkri
Copy link

I am facing the same issue, has there been any updates, solutions or workarounds for this?

@TimBaumgart
Copy link
Contributor

TimBaumgart commented May 10, 2024

Same issue for me. Would it not be sufficient to just add the context as a parameter to the pop() function?

void Function() pop<T>(T result) => () => Navigator.of(context).pop(result);
onConfirm: pop(true),
onCancel: pop(false),

->

void Function() pop<T>(BuildContext context, T result) => () => Navigator.of(context).pop(result);
onConfirm: pop(context, true),
onCancel: pop(context, false),

Afterwards, the confirmation dialog should be popped and not the route below.

EDIT: Just tried it out and it is working

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment