firebase / FirebaseUI-Flutter

Apache License 2.0
92 stars 81 forks source link

🐛 Some AppleID linked users have a single dash as email (null?) after signing up through SignInScreen #142

Closed flying-wizzy closed 8 months ago

flying-wizzy commented 8 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.1.3
Flutter SDK 3.13.6
mwe 1.0.4+11

dependencies:
- flutter 0.0.0
  - characters 1.3.0
  - collection 1.17.2
  - material_color_utilities 0.5.0
  - meta 1.9.1
  - vector_math 2.1.4
  - web 0.1.4-beta
  - sky_engine any
- android_id 0.3.5
  - flutter any
- auto_size_text 3.0.0
  - flutter any
- background_downloader 7.9.4
  - flutter any
  - logging ^1.0.2
  - http >=0.13.0 <2.0.0
  - path_provider ^2.0.2
  - path ^1.8.1
  - async ^2.6.0
  - mime ^1.0.1
  - collection ^1.15.0
  - sqflite ^2.2.8
- chewie 1.7.0
  - cupertino_icons ^1.0.5
  - flutter any
  - provider ^6.0.5
  - video_player ^2.7.0
  - wakelock_plus ^1.1.0
- cloud_firestore 4.9.1
  - cloud_firestore_platform_interface ^5.16.0
  - cloud_firestore_web ^3.7.0
  - collection ^1.0.0
  - firebase_core ^2.15.1
  - firebase_core_platform_interface ^4.8.0
  - flutter any
  - meta ^1.8.0
- cupertino_icons 1.0.6
- device_info_plus 9.0.3
  - 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_auth 4.9.0
  - firebase_auth_platform_interface ^6.18.0
  - firebase_auth_web ^5.8.0
  - firebase_core ^2.15.1
  - firebase_core_platform_interface ^4.8.0
  - flutter any
  - meta ^1.8.0
- firebase_core 2.15.1
  - firebase_core_platform_interface ^4.8.0
  - firebase_core_web ^2.7.0
  - flutter any
  - meta ^1.8.0
- firebase_database 10.2.5
  - firebase_core ^2.15.1
  - firebase_core_platform_interface ^4.8.0
  - firebase_database_platform_interface ^0.2.5+5
  - firebase_database_web ^0.2.3+5
  - flutter any
- firebase_ui_auth 1.8.0
  - email_validator ^2.1.17
  - firebase_auth ^4.9.0
  - firebase_core ^2.15.1
  - firebase_dynamic_links ^5.3.4
  - firebase_ui_localizations ^1.6.1
  - firebase_ui_oauth ^1.4.11
  - firebase_ui_shared ^1.3.1
  - flutter any
  - flutter_localizations any
- firebase_ui_database 1.3.9
  - collection ^1.16.0
  - firebase_database ^10.2.5
  - firebase_ui_localizations ^1.6.1
  - flutter any
- firebase_ui_localizations 1.6.1
  - flutter any
  - flutter_localizations any
  - path ^1.8.2
- firebase_ui_oauth_apple 1.2.11
  - firebase_auth ^4.9.0
  - firebase_ui_oauth ^1.4.11
  - flutter any
- firebase_ui_oauth_google 1.2.11
  - firebase_auth ^4.9.0
  - firebase_ui_oauth ^1.4.11
  - flutter any
  - google_sign_in ^6.1.0
- flex_color_scheme 7.3.1
  - flex_seed_scheme ^1.4.0
  - flutter any
  - meta ^1.8.0
- flutter_localizations 0.0.0
  - flutter any
  - intl 0.18.1
  - characters 1.3.0
  - clock 1.1.1
  - collection 1.17.2
  - material_color_utilities 0.5.0
  - meta 1.9.1
  - path 1.8.3
  - vector_math 2.1.4
  - web 0.1.4-beta
- flutter_markdown 0.6.17+2
  - flutter any
  - markdown ^7.0.0
  - meta ^1.3.0
  - path ^1.8.0
- flutter_native_splash 2.3.2
  - args ^2.4.2
  - flutter any
  - flutter_web_plugins any
  - js ^0.6.7
  - html ^0.15.4
  - image ^4.0.17
  - meta ^1.9.1
  - path ^1.8.3
  - universal_io ^2.2.2
  - xml ^6.3.0
  - yaml ^3.1.2
- flutter_platform_widgets 3.3.5
  - flutter any
  - cupertino_icons ^1.0.5
- flutter_svg 2.0.7
  - flutter any
  - vector_graphics ^1.1.7
  - vector_graphics_codec ^1.1.7
  - vector_graphics_compiler ^1.1.7
- fluttertoast 8.2.2
  - flutter any
  - flutter_web_plugins any
- google_sign_in 6.1.5
  - 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
- http 1.1.0
  - async ^2.5.0
  - http_parser ^4.0.0
  - meta ^1.3.0
- internet_connection_checker 1.0.0+1
- intl 0.18.1
  - clock ^1.1.0
  - meta ^1.0.2
  - path ^1.8.0
- native_device_orientation 1.1.4
  - flutter any
  - meta ^1.0.0
- package_info_plus 4.1.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
- path 1.8.3
- 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.0.5
  - collection ^1.15.0
  - flutter any
  - nested ^1.0.0
- purchases_flutter 5.6.5
  - flutter any
  - freezed_annotation ^2.0.1
  - json_annotation ^4.8.0
- shared_preferences 2.2.1
  - 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
- smooth_page_indicator 1.1.0
  - flutter any
- sqflite 2.3.0
  - flutter any
  - sqflite_common >=2.5.0-1 <4.0.0
  - path >=1.8.0 <3.0.0
- url_launcher 6.1.14
  - flutter any
  - url_launcher_android ^6.0.13
  - url_launcher_ios ^6.0.13
  - url_launcher_linux >=2.0.0 <4.0.0
  - url_launcher_macos >=2.0.0 <4.0.0
  - url_launcher_platform_interface ^2.1.0
  - url_launcher_web ^2.0.0
  - url_launcher_windows >=2.0.0 <4.0.0
- video_player 2.7.1
  - flutter any
  - html ^0.15.0
  - video_player_android ^2.3.5
  - video_player_avfoundation ^2.2.17
  - video_player_platform_interface >=6.1.0 <7.0.0
  - video_player_web ^2.0.0

dev dependencies:
- 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_test 0.0.0
  - flutter any
  - test_api 0.6.0
  - matcher 0.12.16
  - path 1.8.3
  - fake_async 1.3.1
  - clock 1.1.1
  - stack_trace 1.11.0
  - vector_math 2.1.4
  - async 2.11.0
  - boolean_selector 2.1.1
  - characters 1.3.0
  - collection 1.17.2
  - material_color_utilities 0.5.0
  - meta 1.9.1
  - source_span 1.10.0
  - stream_channel 2.1.1
  - string_scanner 1.2.0
  - term_glyph 1.2.1
  - web 0.1.4-beta
- flutter_lints 2.0.3
  - lints ^2.0.0

transitive dependencies:
- _flutterfire_internals 1.3.5
  - collection ^1.0.0
  - firebase_core ^2.15.1
  - firebase_core_platform_interface ^4.8.0
  - flutter any
  - meta ^1.8.0
- archive 3.3.8
  - crypto ^3.0.0
  - path ^1.8.0
  - pointycastle ^3.6.2
- args 2.4.2
- async 2.11.0
  - collection ^1.15.0
  - meta ^1.1.7
- boolean_selector 2.1.1
  - source_span ^1.8.0
  - string_scanner ^1.1.0
- characters 1.3.0
- checked_yaml 2.0.3
  - json_annotation ^4.3.0
  - source_span ^1.8.0
  - yaml ^3.0.0
- cli_util 0.4.0
  - meta ^1.3.0
  - path ^1.8.0
- clock 1.1.1
- cloud_firestore_platform_interface 5.16.0
  - _flutterfire_internals ^1.3.5
  - collection ^1.15.0
  - firebase_core ^2.15.1
  - flutter any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- cloud_firestore_web 3.7.0
  - _flutterfire_internals ^1.3.5
  - cloud_firestore_platform_interface ^5.16.0
  - collection ^1.0.0
  - firebase_core ^2.15.1
  - firebase_core_web ^2.7.0
  - flutter any
  - flutter_web_plugins any
  - js ^0.6.3
- collection 1.17.2
- convert 3.1.1
  - typed_data ^1.3.0
- crypto 3.0.3
  - typed_data ^1.3.0
- csslib 1.0.0
  - source_span ^1.8.0
- dbus 0.7.8
  - args ^2.0.0
  - ffi ^2.0.0
  - meta ^1.3.0
  - xml ^6.1.0
- desktop_webview_auth 0.0.13
  - 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
- email_validator 2.1.17
- fake_async 1.3.1
  - clock ^1.1.0
  - collection ^1.15.0
- ffi 2.1.0
- file 6.1.4
  - meta ^1.3.0
  - path ^1.8.0
- firebase_auth_platform_interface 6.18.0
  - _flutterfire_internals ^1.3.5
  - collection ^1.16.0
  - firebase_core ^2.15.1
  - flutter any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- firebase_auth_web 5.8.0
  - firebase_auth_platform_interface ^6.18.0
  - firebase_core ^2.15.1
  - firebase_core_web ^2.7.0
  - flutter any
  - flutter_web_plugins any
  - http_parser ^4.0.0
  - js ^0.6.3
  - meta ^1.8.0
- firebase_core_platform_interface 4.8.0
  - collection ^1.0.0
  - flutter any
  - flutter_test any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- firebase_core_web 2.7.0
  - firebase_core_platform_interface ^4.8.0
  - flutter any
  - flutter_web_plugins any
  - js ^0.6.3
  - meta ^1.8.0
- firebase_database_platform_interface 0.2.5+5
  - _flutterfire_internals ^1.3.5
  - collection ^1.14.3
  - firebase_core ^2.15.1
  - flutter any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- firebase_database_web 0.2.3+5
  - firebase_core ^2.15.1
  - firebase_core_web ^2.7.0
  - firebase_database_platform_interface ^0.2.5+5
  - flutter any
  - flutter_web_plugins any
  - js ^0.6.3
- firebase_dynamic_links 5.3.5
  - firebase_core ^2.15.1
  - firebase_core_platform_interface ^4.8.0
  - firebase_dynamic_links_platform_interface ^0.2.6+5
  - flutter any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- firebase_dynamic_links_platform_interface 0.2.6+5
  - _flutterfire_internals ^1.3.5
  - firebase_core ^2.15.1
  - flutter any
  - meta ^1.8.0
  - plugin_platform_interface ^2.1.3
- firebase_ui_oauth 1.4.11
  - desktop_webview_auth ^0.0.13
  - firebase_auth ^4.9.0
  - firebase_ui_auth ^1.8.0
  - firebase_ui_shared ^1.3.1
  - flutter_svg ^2.0.7
  - flutter any
- firebase_ui_shared 1.3.1
  - flutter any
- flex_seed_scheme 1.4.0
  - collection ^1.15.0
  - flutter any
  - meta ^1.8.0
- flutter_web_plugins 0.0.0
  - flutter any
  - characters 1.3.0
  - collection 1.17.2
  - material_color_utilities 0.5.0
  - meta 1.9.1
  - vector_math 2.1.4
  - web 0.1.4-beta
- freezed_annotation 2.4.1
  - collection ^1.15.0
  - json_annotation ^4.6.0
  - meta ^1.7.0
- google_identity_services_web 0.2.1+1
  - js ^0.6.4
  - meta ^1.3.0
- google_sign_in_android 6.1.19
  - 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.0+4
  - flutter any
  - flutter_web_plugins any
  - google_identity_services_web ^0.2.1
  - google_sign_in_platform_interface ^2.4.0
  - http >=0.13.0 <2.0.0
  - js ^0.6.3
- html 0.15.4
  - csslib >=0.17.0 <2.0.0
  - source_span ^1.8.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.0.17
  - archive ^3.1.2
  - meta ^1.3.0
  - xml ^6.0.1
- js 0.6.7
  - meta ^1.7.0
- json_annotation 4.8.1
  - meta ^1.4.0
- lints 2.1.1
- logging 1.2.0
- markdown 7.1.1
  - args ^2.0.0
  - meta ^1.3.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.9.1
- mime 1.0.4
- nested 1.0.0
  - flutter any
- package_info_plus_platform_interface 2.0.1
  - flutter any
  - meta ^1.3.0
  - plugin_platform_interface ^2.0.0
- path_parsing 1.0.1
  - vector_math ^2.1.0
  - meta ^1.3.0
- path_provider_android 2.2.0
  - 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 5.4.0
  - meta ^1.9.0
- platform 3.1.2
- plugin_platform_interface 2.1.6
  - meta ^1.3.0
- pointycastle 3.7.3
  - collection ^1.15.0
  - convert ^3.0.0
  - js ^0.6.3
- quiver 3.2.1
  - matcher ^0.12.10
- 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.1
  - file ^6.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.1
  - flutter any
  - flutter_web_plugins any
  - shared_preferences_platform_interface ^2.3.0
- shared_preferences_windows 2.3.1
  - file ^6.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
- sky_engine 0.0.99
- source_span 1.10.0
  - collection ^1.15.0
  - path ^1.8.0
  - term_glyph ^1.2.0
- sqflite_common 2.5.0
  - 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.0
  - path ^1.8.0
- stream_channel 2.1.1
  - async ^2.5.0
- string_scanner 1.2.0
  - source_span ^1.8.0
- synchronized 3.1.0
- term_glyph 1.2.1
- test_api 0.6.0
  - async ^2.5.0
  - boolean_selector ^2.1.0
  - collection ^1.15.0
  - meta ^1.3.0
  - source_span ^1.8.0
  - stack_trace ^1.10.0
  - stream_channel ^2.1.0
  - string_scanner ^1.1.0
  - term_glyph ^1.2.0
- typed_data 1.3.2
  - collection ^1.15.0
- universal_io 2.2.2
  - collection ^1.17.0
  - meta ^1.9.0
  - typed_data ^1.3.0
- url_launcher_android 6.1.0
  - flutter any
  - url_launcher_platform_interface ^2.0.3
- url_launcher_ios 6.1.5
  - flutter any
  - url_launcher_platform_interface ^2.0.3
- url_launcher_linux 3.0.6
  - flutter any
  - url_launcher_platform_interface ^2.0.3
- url_launcher_macos 3.0.7
  - flutter any
  - url_launcher_platform_interface ^2.0.3
- url_launcher_platform_interface 2.1.5
  - flutter any
  - plugin_platform_interface ^2.1.0
- url_launcher_web 2.0.19
  - flutter any
  - flutter_web_plugins any
  - url_launcher_platform_interface ^2.0.3
- url_launcher_windows 3.0.8
  - flutter any
  - url_launcher_platform_interface ^2.0.3
- vector_graphics 1.1.7
  - flutter any
  - vector_graphics_codec 1.1.7
- vector_graphics_codec 1.1.7
- vector_graphics_compiler 1.1.7
  - args ^2.3.0
  - meta ^1.7.0
  - path_parsing ^1.0.1
  - xml ^6.3.0
  - vector_graphics_codec 1.1.7
- vector_math 2.1.4
- video_player_android 2.4.10
  - flutter any
  - video_player_platform_interface >=6.1.0 <7.0.0
- video_player_avfoundation 2.4.10
  - flutter any
  - video_player_platform_interface >=6.1.0 <7.0.0
- video_player_platform_interface 6.2.1
  - flutter any
  - plugin_platform_interface ^2.1.0
- video_player_web 2.0.17
  - flutter any
  - flutter_web_plugins any
  - video_player_platform_interface >=6.1.0 <7.0.0
- wakelock_plus 1.1.1
  - flutter any
  - flutter_web_plugins any
  - meta ^1.3.0
  - wakelock_plus_platform_interface ^1.1.0
  - win32 >=4.0.0 <6.0.0
  - dbus ^0.7.8
  - package_info_plus ^4.0.2
  - js ^0.6.3
- wakelock_plus_platform_interface 1.1.0
  - flutter any
  - plugin_platform_interface ^2.1.4
  - meta ^1.3.0
- web 0.1.4-beta
- win32 5.0.7
  - ffi ^2.1.0
- win32_registry 1.1.1
  - ffi ^2.0.0
  - win32 ^5.0.0
- xdg_directories 1.0.3
  - meta ^1.3.0
  - path ^1.8.0
- xml 6.3.0
  - collection ^1.17.0
  - meta ^1.9.0
  - petitparser ^5.4.0
- yaml 3.1.2
  - collection ^1.15.0
  - source_span ^1.8.0
  - string_scanner ^1.1.0

Steps to reproduce

Unfortunately, I don't know how to reproduce the buggy behavior. Apparently, this bug occurs roughly once every 150 sign-ups through Apple ID. So far it only happened on iOS devices. I'm doing nothing fancy. This is what I'm doing in my app:

FirebaseUIAuth.configureProviders([
        EmailAuthProvider(),
        GoogleProvider(clientId: googleClientId, iOSPreferPlist: true),
        AppleProvider(),
      ]);

I'm showing the SignInScreen() in my app.

Expected Behavior

I expect every user, that signs up via the AppleID - with the "email" scope given to the AppleProvider() by default - to have their email linked to their firebase account.

Actual Behavior

Everything works fine in more than 99% of the cases. However, I can see in the firebase console, that a handful of users, that signed up via AppleID only show a single dash as their email. I assume this means, that their email is null in their firebase account.

see picture proof here

Additional Information

No response

darshankawar commented 8 months ago

@flying-wizzy If the Firebase console doesn't display what you expect, I suggest contacting Firebase support directly. support.google.com/firebase/contact/support

Also, if it works 99% of the time and rarely shows the hyphen (-), then it might not be a plugin code issue, but rather server side issue for which Firebase support is correct platform to ask for further resolution.

Closing from here, as this doesn't seem to be plugin related issue. If you disagree, write in comments and I'll reopen it.