Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[🐛 firebase_ui_auth] otp verification may not trigger on first launch when clicking the submit button on the keyboard

Đang mở
#261 6 bình luận 3 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
25/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Đình trệ
Công nghệ
dart, firebase
Lĩnh vực
authentication, mobile

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện luồng xác minh OTP của Firebase UI Auth trên Android và iOS, tập trung vào lần khởi chạy đầu tiên và nút gửi của bàn phím. Theo dõi điểm vào của quá trình xác minh OTP và so sánh thao tác gửi bằng bàn phím với điều khiển gửi hiển thị; được xem là hoàn tất khi thao tác gửi bằng bàn phím kích hoạt xác minh một cách ổn định ngay trong lần khởi chạy đầu tiên trên cả hai nền tảng.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

auth bug Keep Open Needs Attention
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
Dart SDK 3.2.3
Flutter SDK 3.16.5
appName 1.0.32+57

dependencies:

  • cached_network_image 3.3.1
    • cached_network_image_platform_interface ^4.0.0
    • cached_network_image_web ^1.1.1
    • flutter any
    • flutter_cache_manager ^3.3.1
    • octo_image ^2.0.0
  • cloud_firestore 4.14.0
    • cloud_firestore_platform_interface ^6.1.0
    • cloud_firestore_web ^3.9.0
    • collection ^1.0.0
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any
    • meta ^1.8.0
  • cloud_functions 4.6.0
    • cloud_functions_platform_interface ^5.5.11
    • cloud_functions_web ^4.6.11
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any
  • cropperx 1.1.1
    • flutter any
  • firebase_analytics 10.8.0
    • firebase_analytics_platform_interface ^3.9.0
    • firebase_analytics_web ^0.5.5+12
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any
  • firebase_auth 4.16.0
    • firebase_auth_platform_interface ^7.0.9
    • firebase_auth_web ^5.8.13
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any
    • meta ^1.8.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_crashlytics 3.4.9
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • firebase_crashlytics_platform_interface ^3.6.16
    • flutter any
    • stack_trace ^1.10.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_storage 11.6.0
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • firebase_storage_platform_interface ^5.1.3
    • firebase_storage_web ^3.6.17
    • flutter any
  • firebase_messaging 14.7.10
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • firebase_messaging_platform_interface ^4.5.18
    • firebase_messaging_web ^3.5.18
    • flutter any
    • meta ^1.8.0
  • firebase_ui_auth 1.12.0
    • email_validator ^2.1.17
    • firebase_auth ^4.15.3
    • firebase_core ^2.24.2
    • firebase_dynamic_links ^5.4.8
    • firebase_ui_localizations ^1.10.0
    • firebase_ui_oauth ^1.4.16
    • firebase_ui_shared ^1.4.1
    • flutter any
    • flutter_localizations any
    • meta ^1.10.0
  • firebase_ui_firestore 1.6.0
    • cloud_firestore ^4.13.6
    • firebase_ui_localizations ^1.10.0
    • firebase_ui_shared ^1.4.1
    • flutter any
  • firebase_ui_localizations 1.10.0
    • flutter any
    • flutter_localizations any
    • path ^1.8.3
  • 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
  • hijri 3.0.0
  • image_picker 1.0.6
    • flutter any
    • image_picker_android ^0.8.7
    • image_picker_for_web >=2.2.0 <4.0.0
    • image_picker_ios ^0.8.8
    • image_picker_linux ^0.2.1
    • image_picker_macos ^0.2.1
    • image_picker_platform_interface ^2.8.0
    • image_picker_windows ^0.2.1
  • package_info_plus 5.0.1
    • 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
    • web >=0.3.0 <0.5.0
    • win32 >=4.0.0 <6.0.0
  • pretty_diff_text 1.0.0
    • flutter any
    • diff_match_patch ^0.4.1
  • provider 6.1.1
    • collection ^1.15.0
    • flutter any
    • nested ^1.0.0
  • url_launcher 6.2.2
    • 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
  • webview_flutter 4.4.3
    • flutter any
    • webview_flutter_android ^3.12.0
    • webview_flutter_platform_interface ^2.6.0
    • webview_flutter_wkwebview ^3.9.0
  • flutter_local_notifications 16.3.0
    • clock ^1.1.0
    • flutter any
    • flutter_local_notifications_linux ^4.0.0
    • flutter_local_notifications_platform_interface ^7.0.0
    • timezone ^0.9.0
  • launch_review 3.0.1
    • flutter any
  • font_awesome_flutter 10.6.0
    • flutter any
  • flutter_linkify 6.0.0
    • flutter any
    • linkify ^5.0.0
  • file_saver 0.2.9
    • flutter any
    • flutter_web_plugins any
    • path_provider ^2.0.11
    • path_provider_windows ^2.0.5
    • path_provider_linux ^2.1.5
    • http ^1.1.0
  • permission_handler 11.1.0
    • flutter any
    • meta ^1.7.0
    • permission_handler_android ^12.0.1
    • permission_handler_apple ^9.2.0
    • permission_handler_html ^0.1.0+1
    • permission_handler_windows ^0.2.0
    • permission_handler_platform_interface ^4.0.2
  • device_info_plus 9.1.1
    • device_info_plus_platform_interface ^7.0.0
    • ffi ^2.0.1
    • file >=6.1.4 <8.0.0
    • flutter any
    • flutter_web_plugins any
    • meta ^1.8.0
    • win32 >=4.0.0 <6.0.0
    • win32_registry ^1.1.0
  • firebase_app_check 0.2.1+8
    • firebase_app_check_platform_interface ^0.1.0+10
    • firebase_app_check_web ^0.1.0+10
    • firebase_core ^2.24.2
    • firebase_core_platform_interface ^5.0.0
    • flutter any

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
  • dependency_validator 3.2.3
    • args ^2.0.0
    • build_config ^1.0.0
    • checked_yaml ^2.0.1
    • glob ^2.0.1
    • io ^1.0.0
    • json_annotation ^4.8.0
    • logging ^1.0.1
    • package_config ^2.0.0
    • path ^1.8.0
    • pub_semver ^2.0.0
    • pubspec_parse ^1.0.0
    • yaml ^3.1.0
  • 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

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
  • archive 3.4.10
    • 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_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
  • cached_network_image_platform_interface 4.0.0
    • flutter any
    • flutter_cache_manager ^3.3.1
  • cached_network_image_web 1.1.1
    • cached_network_image_platform_interface ^4.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
  • cli_util 0.4.1
    • meta ^1.3.0
    • path ^1.8.0
  • clock 1.1.1
  • cloud_firestore_platform_interface 6.1.0
    • _flutterfire_internals ^1.3.16
    • collection ^1.15.0
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • cloud_firestore_web 3.9.0
    • _flutterfire_internals ^1.3.16
    • cloud_firestore_platform_interface ^6.1.0
    • collection ^1.0.0
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
  • cloud_functions_platform_interface 5.5.11
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • cloud_functions_web 4.6.11
    • cloud_functions_platform_interface ^5.5.11
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
  • collection 1.18.0
  • convert 3.1.1
    • typed_data ^1.3.0
  • cross_file 0.3.3+8
    • meta ^1.3.0
    • web >=0.3.0 <0.5.0
  • crypto 3.0.3
    • typed_data ^1.3.0
  • dbus 0.7.10
    • args ^2.0.0
    • ffi ^2.0.0
    • meta ^1.3.0
    • xml ^6.1.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
  • device_info_plus_platform_interface 7.0.0
    • flutter any
    • meta ^1.3.0
    • plugin_platform_interface ^2.0.0
  • diff_match_patch 0.4.1
  • 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
  • file_selector_linux 0.9.2+1
    • cross_file ^0.3.1
    • file_selector_platform_interface ^2.6.0
    • flutter any
  • file_selector_macos 0.9.3+3
    • cross_file ^0.3.1
    • file_selector_platform_interface ^2.6.0
    • flutter any
  • file_selector_platform_interface 2.6.1
    • cross_file ^0.3.0
    • flutter any
    • http >=0.13.0 <2.0.0
    • plugin_platform_interface ^2.1.0
  • file_selector_windows 0.9.3+1
    • cross_file ^0.3.1
    • file_selector_platform_interface ^2.6.0
    • flutter any
  • firebase_analytics_platform_interface 3.9.0
    • _flutterfire_internals ^1.3.16
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_analytics_web 0.5.5+12
    • _flutterfire_internals ^1.3.16
    • firebase_analytics_platform_interface ^3.9.0
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
  • firebase_app_check_platform_interface 0.1.0+10
    • _flutterfire_internals ^1.3.16
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_app_check_web 0.1.0+10
    • _flutterfire_internals ^1.3.16
    • firebase_app_check_platform_interface ^0.1.0+10
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
  • 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.13
    • 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_crashlytics_platform_interface 3.6.16
    • _flutterfire_internals ^1.3.16
    • collection ^1.15.0
    • firebase_core ^2.24.2
    • 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_messaging_platform_interface 4.5.18
    • _flutterfire_internals ^1.3.16
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_messaging_web 3.5.18
    • _flutterfire_internals ^1.3.16
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • firebase_messaging_platform_interface ^4.5.18
    • flutter any
    • flutter_web_plugins any
    • js ^0.6.3
    • meta ^1.8.0
  • firebase_storage_platform_interface 5.1.3
    • _flutterfire_internals ^1.3.16
    • collection ^1.15.0
    • firebase_core ^2.24.2
    • flutter any
    • meta ^1.8.0
    • plugin_platform_interface ^2.1.3
  • firebase_storage_web 3.6.17
    • _flutterfire_internals ^1.3.16
    • async ^2.5.0
    • firebase_core ^2.24.2
    • firebase_core_web ^2.10.0
    • firebase_storage_platform_interface ^5.1.3
    • flutter any
    • flutter_web_plugins any
    • http >=0.13.0 <2.0.0
    • js ^0.6.3
    • meta ^1.8.0
  • firebase_ui_oauth 1.4.16
    • desktop_webview_auth ^0.0.14
    • firebase_auth ^4.15.3
    • firebase_ui_auth ^1.12.0
    • firebase_ui_shared ^1.4.1
    • flutter_svg ^2.0.9
    • flutter any
  • firebase_ui_shared 1.4.1
    • flutter any
  • 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_local_notifications_linux 4.0.0+1
    • dbus ^0.7.8
    • ffi ^2.0.1
    • flutter any
    • flutter_local_notifications_platform_interface ^7.0.0
    • path ^1.8.0
    • xdg_directories >=0.2.0+1 <2.0.0
  • flutter_local_notifications_platform_interface 7.0.0+1
    • flutter any
    • plugin_platform_interface ^2.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_plugin_android_lifecycle 2.0.17
    • flutter any
  • 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
  • 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
  • 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
  • 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
  • image 4.1.3
    • archive ^3.4.0
    • meta ^1.3.0
    • xml ^6.0.1
  • image_picker_android 0.8.9+2
    • flutter any
    • flutter_plugin_android_lifecycle ^2.0.1
    • image_picker_platform_interface ^2.8.0
  • image_picker_for_web 3.0.2
    • flutter any
    • flutter_web_plugins any
    • image_picker_platform_interface ^2.9.0
    • mime ^1.0.4
  • image_picker_ios 0.8.9
    • flutter any
    • image_picker_platform_interface ^2.8.0
  • image_picker_linux 0.2.1+1
    • file_selector_linux ^0.9.1+3
    • file_selector_platform_interface ^2.2.0
    • flutter any
    • image_picker_platform_interface ^2.8.0
  • image_picker_macos 0.2.1+1
    • file_selector_macos ^0.9.1+1
    • file_selector_platform_interface ^2.3.0
    • flutter any
    • image_picker_platform_interface ^2.8.0
  • image_picker_platform_interface 2.9.2
    • cross_file ^0.3.1+1
    • flutter any
    • http >=0.13.0 <2.0.0
    • plugin_platform_interface ^2.1.0
  • image_picker_windows 0.2.1+1
    • file_selector_platform_interface ^2.2.0
    • file_selector_windows ^0.9.0
    • flutter any
    • image_picker_platform_interface ^2.8.0
  • intl 0.18.1
    • clock ^1.1.0
    • meta ^1.0.2
    • path ^1.8.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
  • linkify 5.0.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
  • nested 1.0.0
    • flutter any
  • octo_image 2.0.0
    • flutter any
  • package_config 2.1.0
    • path ^1.8.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.2
    • 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
  • permission_handler_android 12.0.1
    • flutter any
    • permission_handler_platform_interface ^4.0.0
  • permission_handler_apple 9.2.0
    • flutter any
    • permission_handler_platform_interface ^4.0.0
  • permission_handler_html 0.1.0+2
    • flutter any
    • flutter_web_plugins any
    • permission_handler_platform_interface ^4.0.2
  • permission_handler_platform_interface 4.0.2
    • flutter any
    • meta ^1.3.0
    • plugin_platform_interface ^2.0.0
  • permission_handler_windows 0.2.0
    • flutter any
    • permission_handler_platform_interface ^4.0.0
  • petitparser 6.0.2
    • meta ^1.9.0
  • platform 3.1.4
  • plugin_platform_interface 2.1.8
    • meta ^1.3.0
  • pointycastle 3.7.3
    • collection ^1.15.0
    • convert ^3.0.0
    • js ^0.6.3
  • 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
  • rxdart 0.27.7
  • sky_engine 0.0.99
  • 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
  • string_scanner 1.2.0
    • source_span ^1.8.0
  • synchronized 3.1.0+1
  • 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
  • timezone 0.9.2
    • path ^1.8.0
  • typed_data 1.3.2
    • collection ^1.15.0
  • url_launcher_android 6.2.1
    • flutter any
    • url_launcher_platform_interface ^2.2.0
  • url_launcher_ios 6.2.2
    • flutter any
    • url_launcher_platform_interface ^2.2.0
  • url_launcher_linux 3.1.1
    • 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.3.0
    • flutter any
    • plugin_platform_interface ^2.1.0
  • url_launcher_web 2.2.3
    • 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.1
    • flutter any
    • url_launcher_platform_interface ^2.2.0
  • uuid 4.2.2
    • 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
  • web 0.3.0
  • webview_flutter_android 3.13.2
    • flutter any
    • webview_flutter_platform_interface ^2.7.0
  • webview_flutter_platform_interface 2.9.0
    • flutter any
    • meta ^1.7.0
    • plugin_platform_interface ^2.1.0
  • webview_flutter_wkwebview 3.10.1
    • flutter any
    • path ^1.8.0
    • webview_flutter_platform_interface ^2.7.0
  • win32 5.2.0
    • ffi ^2.1.0
  • win32_registry 1.1.2
    • ffi ^2.1.0
    • win32 ^5.0.7
  • xdg_directories 1.0.4
    • 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
  1. run fresh app with auth state as signed out.
  2. select registration with phone
  3. enter a test phone number
  4. click the done/submit button on the keyboard
  5. enter the test validation code
  6. click the done/submit button on the keyboard
code sample to reproduce bug
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:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  FirebaseUIAuth.configureProviders([
    EmailAuthProvider(),
    PhoneAuthProvider(),
  ]);
  runApp(const FirebaseAuthUIExample());
}

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 => '/',
      _ => '/profile',
    };
  }

  @override
  Widget build(BuildContext context) {
    final mfaAction = AuthStateChangeAction<MFARequired>(
      (context, state) async {
        final nav = Navigator.of(context);
        await startMFAVerification(
          resolver: state.resolver,
          context: context,
        );

        nav.pushReplacementNamed('/profile');
      },
    );
    return MaterialApp(
      initialRoute: initialRoute,
      routes: {
        '/': (context) {
          return SignInScreen(
            actions: [
              VerifyPhoneAction((context, _) {
                Navigator.pushNamed(context, '/phone');
              }),
              mfaAction,
              EmailLinkSignInAction((context) {
                Navigator.pushReplacementNamed(context, '/email-link-sign-in');
              }),
            ],
          );
        },
        '/phone': (context) {
          return PhoneInputScreen(
            actions: [
              SMSCodeRequestedAction((context, action, flowKey, phone) {
                Navigator.of(context).pushReplacementNamed(
                  '/sms',
                  arguments: {
                    'action': action,
                    'flowKey': flowKey,
                    'phone': phone,
                  },
                );
              }),
            ],
          );
        },
        '/sms': (context) {
          final arguments = ModalRoute.of(context)?.settings.arguments as Map<String, dynamic>?;
          return SMSCodeInputScreen(
            actions: [
              AuthStateChangeAction<SignedIn>((context, state) {
                Navigator.of(context).pushReplacementNamed('/profile');
              })
            ],
            flowKey: arguments?['flowKey'],
            action: arguments?['action'],
          );
        },
        '/profile': (context) {
          final platform = Theme.of(context).platform;
          return ProfileScreen(
            actions: [
              SignedOutAction((context) {
                Navigator.pushReplacementNamed(context, '/');
              }),
              mfaAction,
            ],
            showMFATile: kIsWeb || platform == TargetPlatform.iOS || platform == TargetPlatform.android,
            showUnlinkConfirmationDialog: true,
            showDeleteConfirmationDialog: true,
          );
        },
      },
      title: 'Firebase UI demo',
      debugShowCheckedModeBanner: false,
      locale: const Locale('ar', 'SA'),
      supportedLocales: [const Locale('ar', 'SA')],
      localizationsDelegates: [
        FirebaseUILocalizations.withDefaultOverrides(const LabelOverrides()),
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        FirebaseUILocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
    );
  }
}

### Expected Behavior

the OTP verification starts and the user gets signed in.

Actual Behavior

sometimes the verification does not start (blocked by something? I am not certain) and another click (sometimes multiple clicks) on verify button is required to verify OTP. in other instances, I have to go back to main login page and retry entering the phone number and request another OTP. I notice that this happens when the app is launched fresh and not when signed out and then trying to sign in again.

Additional Information

I used this with a test phone number that was added to firebase authentication. When I try the same with a real phone number I end up receiving multiple SMS messages from Firebase. This makes the auth costs almost double for my project.
image

Here is a screen recording for the issue. in the video you notice the first sign in does not pick the OTP confirm button click and I had to click verify. In the second attempt (in the same screen recording) the OTP confirm button works right away.
https://github.com/firebase/FirebaseUI-Flutter/assets/12709757/c6508b8c-9100-4f1e-9ad4-792811ffbb8d

Ngôn ngữ chính
Dart
Star
152
Fork
141
Merge trung bình
2 ngày 10 giờ
Pull request đã merge (30 ngày)
12

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của firebase/FirebaseUI-Flutter

Tất cả issue của firebase/FirebaseUI-Flutter

Issue tương tự

Thêm issue về Dart

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.