firebase / FirebaseUI-Flutter

Apache License 2.0
92 stars 79 forks source link

🐛 [firebase_ui_auth] showReauthenticateDialog returns false after signing in with phone #197

Closed hashimsayed0 closed 6 months ago

hashimsayed0 commented 7 months ago

Is there an existing issue for this?

What plugin is this bug for?

Firebase UI Auth

What platform(s) does this bug affect?

iOS

List of dependencies used.

flutter pub deps -s list ``` Dart SDK 3.2.0 Flutter SDK 3.16.0 nisf 1.4.0 dependencies: - auto_size_text 3.0.0 - flutter any - badges 3.1.2 - flutter any - chips_choice 3.0.1 - flutter any - async ^2.8.2 - flexi_chip ^1.0.7 - circular 0.0.5 - flutter any - cloud_firestore 4.13.2 - cloud_firestore_platform_interface ^6.0.6 - cloud_firestore_web ^3.8.6 - collection ^1.0.0 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - flutter any - meta ^1.8.0 - cloud_functions 4.5.5 - cloud_functions_platform_interface ^5.5.8 - cloud_functions_web ^4.6.8 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - flutter any - collapsible_sidebar 2.0.7 - flutter any - cool_stepper 1.2.1 - flutter any - another_flushbar ^1.10.18 - csc_picker 0.2.7 - flutter any - cupertino_icons 1.0.6 - dropdown_search 5.0.6 - flutter any - easy_localization 3.0.3 - flutter any - shared_preferences >=2.0.0 <3.0.0 - intl >=0.17.0-0 <=0.18.1 - args ^2.3.1 - path ^1.8.1 - easy_logger ^0.0.2 - flutter_localizations any - equatable 2.0.5 - collection ^1.15.0 - meta ^1.3.0 - firebase_auth 4.14.1 - firebase_auth_platform_interface ^7.0.5 - firebase_auth_web ^5.8.8 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - flutter any - meta ^1.8.0 - firebase_core 2.23.0 - firebase_core_platform_interface ^5.0.0 - firebase_core_web ^2.8.1 - flutter any - meta ^1.8.0 - firebase_crashlytics 3.4.5 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - firebase_crashlytics_platform_interface ^3.6.13 - flutter any - stack_trace ^1.10.0 - firebase_database 10.3.5 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - firebase_database_platform_interface ^0.2.5+13 - firebase_database_web ^0.2.3+13 - flutter any - firebase_messaging 14.7.5 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - firebase_messaging_platform_interface ^4.5.14 - firebase_messaging_web ^3.5.14 - flutter any - meta ^1.8.0 - firebase_ui_auth 1.10.0 - email_validator ^2.1.17 - firebase_auth ^4.11.1 - firebase_core ^2.19.0 - firebase_dynamic_links ^5.4.1 - firebase_ui_localizations ^1.8.0 - firebase_ui_oauth ^1.4.14 - firebase_ui_shared ^1.4.1 - flutter any - flutter_localizations any - firebase_ui_firestore 1.5.14 - cloud_firestore ^4.11.0 - firebase_ui_localizations ^1.8.0 - flutter any - firebase_ui_oauth_apple 1.2.14 - firebase_auth ^4.11.1 - firebase_ui_oauth ^1.4.14 - flutter any - firebase_ui_oauth_google 1.2.14 - firebase_auth ^4.11.1 - firebase_ui_oauth ^1.4.14 - flutter any - google_sign_in ^6.1.0 - 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 - flutter_animate 4.3.0 - flutter any - flutter_form_builder 9.1.1 - flutter any - intl ^0.18.0 - flutter_hooks 0.20.3 - flutter any - flutter_keyboard_visibility 5.4.1 - meta >=1.0.0 <2.0.0 - flutter_keyboard_visibility_platform_interface ^2.0.0 - flutter_keyboard_visibility_linux ^1.0.0 - flutter_keyboard_visibility_macos ^1.0.0 - flutter_keyboard_visibility_web ^2.0.0 - flutter_keyboard_visibility_windows ^1.0.0 - flutter any - flutter_launcher_icons 0.13.1 - args ^2.3.2 - checked_yaml ^2.0.2 - cli_util ^0.4.0 - image ^4.0.15 - json_annotation ^4.8.0 - path ^1.8.2 - yaml ^3.1.1 - 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_riverpod 2.4.8 - collection ^1.15.0 - flutter any - meta ^1.4.0 - riverpod 2.4.8 - state_notifier >=0.7.2 <2.0.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 - font_awesome_flutter 10.6.0 - flutter any - form_builder_validators 9.1.0 - flutter any - flutter_localizations any - intl ^0.18.1 - freezed 2.4.5 - analyzer >=5.13.0 <7.0.0 - build ^2.3.1 - build_config ^1.1.0 - collection ^1.15.0 - meta ^1.9.1 - source_gen ^1.2.3 - freezed_annotation ^2.4.1 - json_annotation ^4.6.0 - get 4.6.6 - flutter any - go_router 12.1.1 - collection ^1.15.0 - flutter any - flutter_web_plugins any - logging ^1.0.0 - meta ^1.7.0 - google_fonts 6.1.0 - flutter any - http ^1.0.0 - path_provider ^2.0.0 - crypto ^3.0.0 - google_sign_in 6.1.6 - flutter any - google_sign_in_android ^6.1.0 - google_sign_in_ios ^5.5.0 - google_sign_in_platform_interface ^2.4.0 - google_sign_in_web ^0.12.0 - hooks_riverpod 2.4.8 - collection ^1.15.0 - flutter any - flutter_hooks >=0.18.0 <0.21.0 - flutter_riverpod 2.4.8 - riverpod 2.4.8 - state_notifier >=0.7.2 <2.0.0 - in_app_review 2.0.8 - flutter any - in_app_review_platform_interface ^2.0.5 - internet_connection_checker 1.0.0+1 - intl 0.18.1 - clock ^1.1.0 - meta ^1.0.2 - path ^1.8.0 - intl_phone_field 3.2.0 - flutter any - json_annotation 4.8.1 - meta ^1.4.0 - multi_select_flutter 4.1.3 - flutter any - collection ^1.15.0 - new_version_plus 0.0.11 - flutter any - package_info_plus ^4.0.2 - http ^1.1.0 - url_launcher ^6.1.11 - ntp 2.0.0 - pull_to_refresh 2.0.0 - flutter any - purchases_flutter 6.4.0 - flutter any - freezed_annotation ^2.0.1 - json_annotation ^4.8.0 - riverpod_annotation 2.3.2 - meta ^1.7.0 - riverpod ^2.4.8 - 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 - sign_in_with_apple 5.0.0 - flutter any - meta ^1.3.0 - sign_in_with_apple_platform_interface ^1.0.0 - sign_in_with_apple_web ^1.0.0 - url_launcher 6.2.1 - flutter any - url_launcher_android ^6.2.0 - url_launcher_ios ^6.2.0 - url_launcher_linux ^3.1.0 - url_launcher_macos ^3.1.0 - url_launcher_platform_interface ^2.2.0 - url_launcher_web ^2.2.0 - url_launcher_windows ^3.1.0 - uuid 4.2.1 - crypto ^3.0.0 - sprintf ^7.0.0 - meta ^1.9.1 - whatsapp_unilink 2.1.0 dev dependencies: - build_runner 2.4.6 - 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 - custom_lint 0.5.7 - analyzer >=5.12.0 <7.0.0 - analyzer_plugin ^0.11.0 - args ^2.3.1 - async ^2.9.0 - ci ^0.1.0 - cli_util ^0.4.0 - collection ^1.16.0 - freezed_annotation ^2.2.0 - json_annotation ^4.7.0 - meta ^1.7.0 - package_config ^2.0.2 - path ^1.8.0 - pub_semver ^2.1.1 - pubspec_parse ^1.2.0 - rxdart ^0.27.7 - uuid >=3.0.6 <5.0.0 - yaml ^3.1.1 - flutter_lints 3.0.1 - lints ^3.0.0 - 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 - json_serializable 6.7.1 - analyzer >=5.12.0 <7.0.0 - async ^2.8.0 - build ^2.0.0 - build_config >=0.4.4 <2.0.0 - collection ^1.14.0 - json_annotation >=4.8.1 <4.9.0 - meta ^1.3.0 - path ^1.8.0 - pub_semver ^2.0.0 - pubspec_parse ^1.0.0 - source_gen ^1.3.2 - source_helper ^1.3.0 - mocktail 1.0.1 - collection ^1.15.0 - matcher ^0.12.15 - test_api >=0.2.1 <0.7.0 - random_string 2.3.1 - riverpod_generator 2.3.8 - analyzer >=5.12.0 <7.0.0 - build ^2.0.0 - build_config ^1.0.0 - collection ^1.15.0 - crypto ^3.0.2 - meta ^1.7.0 - path ^1.8.0 - riverpod_analyzer_utils ^0.5.0 - riverpod_annotation ^2.3.2 - source_gen ^1.2.0 - riverpod_lint 2.3.6 - analyzer >=6.0.0 <7.0.0 - analyzer_plugin ^0.11.2 - collection ^1.16.0 - custom_lint_builder ^0.5.2 - meta ^1.7.0 - path ^1.8.1 - riverpod ^2.4.8 - riverpod_analyzer_utils ^0.5.0 - source_span ^1.8.0 - yaml ^3.1.1 transitive dependencies: - _fe_analyzer_shared 64.0.0 - meta ^1.9.0 - _flutterfire_internals 1.3.13 - collection ^1.0.0 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - flutter any - meta ^1.8.0 - analyzer 6.2.0 - _fe_analyzer_shared ^64.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 - analyzer_plugin 0.11.3 - analyzer ^6.0.0 - collection ^1.15.0 - dart_style ^2.2.1 - pub_semver ^2.1.0 - yaml ^3.1.0 - animated_checkmark 1.0.1 - flutter any - another_flushbar 1.12.30 - flutter any - 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 - 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 - characters 1.3.0 - checked_yaml 2.0.3 - json_annotation ^4.3.0 - source_span ^1.8.0 - yaml ^3.0.0 - ci 0.1.0 - cli_util 0.4.0 - meta ^1.3.0 - path ^1.8.0 - clock 1.1.1 - cloud_firestore_platform_interface 6.0.6 - _flutterfire_internals ^1.3.13 - collection ^1.15.0 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - cloud_firestore_web 3.8.6 - _flutterfire_internals ^1.3.13 - cloud_firestore_platform_interface ^6.0.6 - collection ^1.0.0 - firebase_core ^2.23.0 - firebase_core_web ^2.8.1 - flutter any - flutter_web_plugins any - js ^0.6.3 - cloud_functions_platform_interface 5.5.8 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - cloud_functions_web 4.6.8 - cloud_functions_platform_interface ^5.5.8 - firebase_core ^2.23.0 - firebase_core_web ^2.8.1 - flutter any - flutter_web_plugins any - js ^0.6.3 - 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 - custom_lint_builder 0.5.7 - analyzer >=5.12.0 <7.0.0 - analyzer_plugin ^0.11.0 - collection ^1.16.0 - custom_lint 0.5.7 - custom_lint_core 0.5.7 - glob ^2.1.1 - hotreloader >=3.0.5 <5.0.0 - meta ^1.7.0 - path ^1.8.0 - pubspec_parse ^1.2.0 - rxdart ^0.27.7 - custom_lint_core 0.5.7 - analyzer >=5.12.0 <7.0.0 - analyzer_plugin ^0.11.0 - collection ^1.16.0 - custom_lint 0.5.7 - matcher ^0.12.0 - meta ^1.7.0 - path ^1.8.0 - pubspec_parse ^1.2.2 - source_span ^1.8.0 - yaml ^3.1.1 - 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 - easy_logger 0.0.2 - flutter any - 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.5 - _flutterfire_internals ^1.3.13 - collection ^1.16.0 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_auth_web 5.8.8 - firebase_auth_platform_interface ^7.0.5 - firebase_core ^2.23.0 - firebase_core_web ^2.8.1 - 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.8.1 - firebase_core_platform_interface ^5.0.0 - flutter any - flutter_web_plugins any - js ^0.6.3 - meta ^1.8.0 - firebase_crashlytics_platform_interface 3.6.13 - _flutterfire_internals ^1.3.13 - collection ^1.15.0 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_database_platform_interface 0.2.5+13 - _flutterfire_internals ^1.3.13 - collection ^1.14.3 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_database_web 0.2.3+13 - firebase_core ^2.23.0 - firebase_core_web ^2.8.1 - firebase_database_platform_interface ^0.2.5+13 - flutter any - flutter_web_plugins any - js ^0.6.3 - firebase_dynamic_links 5.4.5 - firebase_core ^2.23.0 - firebase_core_platform_interface ^5.0.0 - firebase_dynamic_links_platform_interface ^0.2.6+13 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_dynamic_links_platform_interface 0.2.6+13 - _flutterfire_internals ^1.3.13 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_messaging_platform_interface 4.5.14 - _flutterfire_internals ^1.3.13 - firebase_core ^2.23.0 - flutter any - meta ^1.8.0 - plugin_platform_interface ^2.1.3 - firebase_messaging_web 3.5.14 - _flutterfire_internals ^1.3.13 - firebase_core ^2.23.0 - firebase_core_web ^2.8.1 - firebase_messaging_platform_interface ^4.5.14 - flutter any - flutter_web_plugins any - js ^0.6.3 - meta ^1.8.0 - firebase_ui_localizations 1.8.0 - flutter any - flutter_localizations any - path ^1.8.2 - firebase_ui_oauth 1.4.14 - desktop_webview_auth ^0.0.13 - firebase_auth ^4.11.1 - firebase_ui_auth ^1.10.0 - firebase_ui_shared ^1.4.1 - flutter_svg ^2.0.7 - flutter any - firebase_ui_shared 1.4.1 - flutter any - fixnum 1.1.0 - flexi_chip 1.0.8 - flutter any - widget_event ^1.2.5 - animated_checkmark ^1.0.1 - flutter_keyboard_visibility_linux 1.0.0 - flutter_keyboard_visibility_platform_interface ^2.0.0 - flutter any - flutter_keyboard_visibility_macos 1.0.0 - flutter_keyboard_visibility_platform_interface ^2.0.0 - flutter any - flutter_keyboard_visibility_platform_interface 2.0.0 - flutter any - meta >=1.0.0 <2.0.0 - plugin_platform_interface ^2.0.0 - flutter_keyboard_visibility_web 2.0.0 - flutter_keyboard_visibility_platform_interface ^2.0.0 - flutter_web_plugins any - flutter any - flutter_keyboard_visibility_windows 1.0.0 - flutter_keyboard_visibility_platform_interface ^2.0.0 - flutter any - 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 - freezed_annotation 2.4.1 - collection ^1.15.0 - json_annotation ^4.6.0 - meta ^1.7.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.2.2 - js ^0.6.4 - meta ^1.3.0 - google_sign_in_android 6.1.20 - flutter any - google_sign_in_platform_interface ^2.2.0 - google_sign_in_ios 5.6.3 - flutter any - google_sign_in_platform_interface ^2.2.0 - google_sign_in_platform_interface 2.4.2 - flutter any - plugin_platform_interface ^2.1.0 - quiver ^3.0.0 - google_sign_in_web 0.12.1 - flutter any - flutter_web_plugins any - google_identity_services_web ^0.2.2 - google_sign_in_platform_interface ^2.4.0 - http >=0.13.0 <2.0.0 - js ^0.6.3 - graphs 2.3.1 - collection ^1.1.0 - hotreloader 3.0.6 - collection ^1.15.0 - logging ^1.0.0 - path ^1.8.0 - stream_transform ^2.0.0 - vm_service >=6.0.1 <12.0.0 - watcher ^1.0.0 - http 1.1.0 - async ^2.5.0 - http_parser ^4.0.0 - meta ^1.3.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 - image 4.1.3 - archive ^3.4.0 - meta ^1.3.0 - xml ^6.0.1 - in_app_review_platform_interface 2.0.5 - flutter any - url_launcher ^6.1.0 - plugin_platform_interface ^2.0.0 - platform ^3.0.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 - lints 3.0.0 - logging 1.2.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 - package_config 2.1.0 - path ^1.8.0 - package_info_plus 4.2.0 - ffi ^2.0.1 - flutter any - flutter_web_plugins any - http >=0.13.5 <2.0.0 - meta ^1.8.0 - path ^1.8.2 - package_info_plus_platform_interface ^2.0.1 - win32 >=4.0.0 <6.0.0 - package_info_plus_platform_interface 2.0.1 - flutter any - meta ^1.3.0 - plugin_platform_interface ^2.0.0 - path 1.8.3 - path_parsing 1.0.1 - vector_math ^2.1.0 - meta ^1.3.0 - 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 - 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.1 - meta ^1.9.0 - 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 - quiver 3.2.1 - matcher ^0.12.10 - riverpod 2.4.8 - meta ^1.9.0 - stack_trace ^1.10.0 - state_notifier >=0.7.2 <2.0.0 - riverpod_analyzer_utils 0.5.0 - analyzer >=5.12.0 <7.0.0 - collection ^1.16.0 - crypto ^3.0.2 - custom_lint_core ^0.5.2 - freezed_annotation ^2.2.0 - meta ^1.7.0 - path ^1.8.0 - source_span ^1.8.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 - sign_in_with_apple_platform_interface 1.0.0 - flutter any - plugin_platform_interface ^2.0.0 - meta ^1.3.0 - sign_in_with_apple_web 1.0.1 - flutter any - flutter_web_plugins any - sign_in_with_apple_platform_interface ^1.0.0 - js ^0.6.3 - 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 - 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 - stream_transform 2.1.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 - timing 1.0.1 - json_annotation ^4.3.0 - typed_data 1.3.2 - collection ^1.15.0 - url_launcher_android 6.2.0 - flutter any - url_launcher_platform_interface ^2.2.0 - url_launcher_ios 6.2.1 - flutter any - url_launcher_platform_interface ^2.2.0 - url_launcher_linux 3.1.0 - flutter any - url_launcher_platform_interface ^2.2.0 - url_launcher_macos 3.1.0 - flutter any - url_launcher_platform_interface ^2.2.0 - url_launcher_platform_interface 2.2.0 - flutter any - plugin_platform_interface ^2.1.0 - url_launcher_web 2.2.1 - flutter any - flutter_web_plugins any - url_launcher_platform_interface ^2.2.0 - web >=0.3.0 <0.5.0 - url_launcher_windows 3.1.0 - flutter any - url_launcher_platform_interface ^2.2.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 - vm_service 11.10.0 - 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 - widget_event 1.2.5 - flutter any - win32 5.1.0 - ffi ^2.1.0 - xdg_directories 1.0.3 - meta ^1.3.0 - path ^1.8.0 - xml 6.4.2 - 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

Widgets used

  1. SignInScreen() with [PhoneAuthProvider()] passed to providers argument
  2. showReauthenticateDialog() with [PhoneAuthProvider()] passed to providers argument

Steps

  1. Sign in using phone on the SignInScreen and login using a phone number and OTP.
  2. Once logged in, when account is to be deleted, showReauthenticateDialog is invoked.
  3. When you enter the same phone number and verify after entering OTP in the reauthentication dialog, onSignedIn callback is not invoked and showReauthenticateDialog() returns false.

Expected Behavior

onSignedIn callback invoked and showReauthenticateDialog() returns true

Actual Behavior

onSignedIn callback not invoked and showReauthenticateDialog() returns false

Additional Information

Tested on iOS Simulator (iPhone 11 Pro Max iOS 17.0). I tested other providers such as EmailAuthProvider() and GoogleProvider() and expected behaviour is achieved.

danagbemava-nc commented 7 months ago

Hi @hashimsayed0, thanks for filing this issue.

Can you please provide the complete minimal reproducible code sample that you're experiencing the issue with so that we can investigate this issue?

Thank you

hashimsayed0 commented 7 months ago

Hey @danagbemava-nc, I accidentally closed the issue yesterday. Here's an MRE.

Please sign in with PhoneAuthProvider() passed in for providers in SignInScreen()

SignInScreen(
  providers: [PhoneAuthProvider()],
  actions: [
    AuthStateChangeAction<SignedIn>((context, state) {
      // navigate to the screen where the following ElevatedButton is present
    }),
  ],
);    

Reauthenticate using the following ElevatedButton.

ElevatedButton(
  onPressed: () async {
    final bool result =
        await showReauthenticateDialog(
      context: context,
      providers: [PhoneAuthProvider()],
      onSignedIn: () {
        // success TODO: delete account
        debugPrint("successfully reauthenticated");
      },
    );
    debugPrint(
        "reauthentication result: ${result.toString()}");
  },
  child: const Text("Reauthenticate"));

I noticed that even after a successful reauthentication using phone, value of result is false, and onSignedIn is not invoked.

danagbemava-nc commented 7 months ago

Reproducible using the plugin example app.

I modified the main.dart as follows

flutter doctor -v ```dart // Copyright 2022, the Chromium project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import 'package:firebase_auth/firebase_auth.dart' hide PhoneAuthProvider, EmailAuthProvider; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_ui_auth/firebase_ui_auth.dart'; import 'package:firebase_ui_localizations/firebase_ui_localizations.dart'; import 'package:firebase_ui_oauth_apple/firebase_ui_oauth_apple.dart'; import 'package:firebase_ui_oauth_facebook/firebase_ui_oauth_facebook.dart'; import 'package:firebase_ui_oauth_google/firebase_ui_oauth_google.dart'; // import 'package:firebase_ui_oauth_twitter/firebase_ui_oauth_twitter.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'config.dart'; import 'decorations.dart'; import 'firebase_options.dart'; final actionCodeSettings = ActionCodeSettings( url: 'https://flutterfire-e2e-tests.firebaseapp.com', handleCodeInApp: true, androidMinimumVersion: '1', androidPackageName: 'io.flutter.plugins.firebase_ui.firebase_ui_example', iOSBundleId: 'io.flutter.plugins.fireabaseUiExample', ); final emailLinkProviderConfig = EmailLinkAuthProvider( actionCodeSettings: actionCodeSettings, ); Future main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); // await FirebaseAuth.instance.useAuthEmulator('localhost', 9098); FirebaseUIAuth.configureProviders([ EmailAuthProvider(), emailLinkProviderConfig, PhoneAuthProvider(), GoogleProvider(clientId: GOOGLE_CLIENT_ID), AppleProvider(), FacebookProvider(clientId: FACEBOOK_CLIENT_ID), // TwitterProvider( // apiKey: TWITTER_API_KEY, // apiSecretKey: TWITTER_API_SECRET_KEY, // redirectUri: TWITTER_REDIRECT_URI, // ), ]); runApp(const FirebaseAuthUIExample()); } // Overrides a label for en locale // To add localization for a custom language follow the guide here: // https://flutter.dev/docs/development/accessibility-and-localization/internationalization#an-alternative-class-for-the-apps-localized-resources class LabelOverrides extends DefaultLocalizations { const LabelOverrides(); @override String get emailInputLabel => 'Enter your email'; } class FirebaseAuthUIExample extends StatelessWidget { const FirebaseAuthUIExample({super.key}); String get initialRoute { final user = FirebaseAuth.instance.currentUser; return switch (user) { null => '/', User(emailVerified: false, email: final String _) => '/verify-email', _ => '/profile', }; } @override Widget build(BuildContext context) { final buttonStyle = ButtonStyle( padding: MaterialStateProperty.all(const EdgeInsets.all(12)), shape: MaterialStateProperty.all( RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), ), ); final mfaAction = AuthStateChangeAction( (context, state) async { final nav = Navigator.of(context); await startMFAVerification( resolver: state.resolver, context: context, ); nav.pushReplacementNamed('/profile'); }, ); return MaterialApp( theme: ThemeData( brightness: Brightness.light, visualDensity: VisualDensity.standard, useMaterial3: true, inputDecorationTheme: const InputDecorationTheme( border: OutlineInputBorder(), ), elevatedButtonTheme: ElevatedButtonThemeData(style: buttonStyle), textButtonTheme: TextButtonThemeData(style: buttonStyle), outlinedButtonTheme: OutlinedButtonThemeData(style: buttonStyle), ), initialRoute: initialRoute, routes: { '/': (context) { return SignInScreen( actions: [ ForgotPasswordAction((context, email) { Navigator.pushNamed( context, '/forgot-password', arguments: {'email': email}, ); }), VerifyPhoneAction((context, _) { Navigator.pushNamed(context, '/phone'); }), AuthStateChangeAction((context, state) { final user = switch (state) { SignedIn(user: final user) => user, CredentialLinked(user: final user) => user, UserCreated(credential: final cred) => cred.user, _ => null, }; switch (user) { case User(emailVerified: true): Navigator.pushReplacementNamed(context, '/profile'); case User(emailVerified: false, email: final String _): Navigator.pushNamed(context, '/verify-email'); } }), mfaAction, EmailLinkSignInAction((context) { Navigator.pushReplacementNamed(context, '/email-link-sign-in'); }), ], styles: const { EmailFormStyle(signInButtonVariant: ButtonVariant.filled), }, headerBuilder: headerImage('assets/images/flutterfire_logo.png'), sideBuilder: sideImage('assets/images/flutterfire_logo.png'), subtitleBuilder: (context, action) { final actionText = switch (action) { AuthAction.signIn => 'Please sign in to continue.', AuthAction.signUp => 'Please create an account to continue', _ => throw Exception('Invalid action: $action'), }; return Padding( padding: const EdgeInsets.only(bottom: 8), child: Text('Welcome to Firebase UI! $actionText.'), ); }, footerBuilder: (context, action) { final actionText = switch (action) { AuthAction.signIn => 'signing in', AuthAction.signUp => 'registering', _ => throw Exception('Invalid action: $action'), }; return Center( child: Padding( padding: const EdgeInsets.only(top: 16), child: Text( 'By $actionText, you agree to our terms and conditions.', style: const TextStyle(color: Colors.grey), ), ), ); }, ); }, '/verify-email': (context) { return EmailVerificationScreen( headerBuilder: headerIcon(Icons.verified), sideBuilder: sideIcon(Icons.verified), actionCodeSettings: actionCodeSettings, actions: [ EmailVerifiedAction(() { Navigator.pushReplacementNamed(context, '/profile'); }), AuthCancelledAction((context) { FirebaseUIAuth.signOut(context: context); Navigator.pushReplacementNamed(context, '/'); }), ], ); }, '/phone': (context) { return PhoneInputScreen( actions: [ SMSCodeRequestedAction((context, action, flowKey, phone) { Navigator.of(context).pushReplacementNamed( '/sms', arguments: { 'action': action, 'flowKey': flowKey, 'phone': phone, }, ); }), ], headerBuilder: headerIcon(Icons.phone), sideBuilder: sideIcon(Icons.phone), ); }, '/sms': (context) { final arguments = ModalRoute.of(context)?.settings.arguments as Map?; return SMSCodeInputScreen( actions: [ AuthStateChangeAction((context, state) { Navigator.of(context).pushReplacementNamed('/profile'); }) ], flowKey: arguments?['flowKey'], action: arguments?['action'], headerBuilder: headerIcon(Icons.sms_outlined), sideBuilder: sideIcon(Icons.sms_outlined), ); }, '/forgot-password': (context) { final arguments = ModalRoute.of(context)?.settings.arguments as Map?; return ForgotPasswordScreen( email: arguments?['email'], headerMaxExtent: 200, headerBuilder: headerIcon(Icons.lock), sideBuilder: sideIcon(Icons.lock), ); }, '/email-link-sign-in': (context) { return EmailLinkSignInScreen( actions: [ AuthStateChangeAction((context, state) { Navigator.pushReplacementNamed(context, '/'); }), ], provider: emailLinkProviderConfig, headerMaxExtent: 200, headerBuilder: headerIcon(Icons.link), sideBuilder: sideIcon(Icons.link), ); }, '/profile': (context) { final platform = Theme.of(context).platform; // return ProfileScreen( // actions: [ // SignedOutAction((context) { // Navigator.pushReplacementNamed(context, '/'); // }), // mfaAction, // ], // actionCodeSettings: actionCodeSettings, // showMFATile: kIsWeb || // platform == TargetPlatform.iOS || // platform == TargetPlatform.android, // showUnlinkConfirmationDialog: true, // ); return Scaffold( floatingActionButton: FloatingActionButton( onPressed: () async { final bool result = await showReauthenticateDialog( context: context, providers: [PhoneAuthProvider()], onSignedIn: () { // success TODO: delete account debugPrint("successfully reauthenticated"); }, ); print('result is: $result'); }, ), ); }, }, title: 'Firebase UI demo', debugShowCheckedModeBanner: false, locale: const Locale('en'), localizationsDelegates: [ FirebaseUILocalizations.withDefaultOverrides(const LabelOverrides()), GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, FirebaseUILocalizations.delegate, ], ); } } ```

cc @lesnitsky