firebase / flutterfire

🔥 A collection of Firebase plugins for Flutter apps.
https://firebase.google.com/docs/flutter/setup
BSD 3-Clause "New" or "Revised" License
8.68k stars 3.97k forks source link

🐛 [firebase_auth] Web build fails with sound null safety enabled #6012

Closed davidpanic closed 3 years ago

davidpanic commented 3 years ago

Bug report

Describe the bug

The web build fails with an exception.

Steps to reproduce

Steps to reproduce the behavior:

  1. Build an app with firebase auth for the web.

Expected behavior

I expected the build to finish normally.


Additional context

Logs:

💪 Building with sound null safety 💪
Compiling lib/main.dart for the Web...                          
Target dart2js failed: Exception: /root/.pub-cache/hosted/pub.dartlang.org/firebase_auth_web-1.1.0/lib/src/utils/web_utils.dart:177:52:
Error: The argument type 'Map<dynamic, dynamic>?' can't be assigned to the parameter type 'Map<Object?, Object?>' because 'Map<dynamic, dynamic>?' is nullable and 'Map<Object?, Object?>' isn't.
 - 'Map' is from 'dart:core'.
 - 'Object' is from 'dart:core'.
    oAuthProvider.setCustomParameters(authProvider.parameters);
                                                   ^
Error: Compilation failed.
Compiling lib/main.dart for the Web...                              8.1s
Exception: Failed to compile application for the Web.

We are building the app with gitlab CI and the docker image cirrusci/flutter:latest


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand ``` flutter doctor -v [✓] Flutter (Channel stable, 2.0.6, on Linux, locale en_US.UTF-8) • Flutter version 2.0.6 at /opt/flutter • Framework revision 1d9032c7e1 (4 days ago), 2021-04-29 17:37:58 -0700 • Engine revision 05e680e202 • Dart version 2.12.3 [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2) • Android SDK at /home/david/Android/Sdk • Platform android-30, build-tools 30.0.2 • ANDROID_HOME = /home/david/Android/Sdk • Java binary at: /opt/android-studio/jre/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593) • All Android licenses accepted. [✓] Chrome - develop for the web • CHROME_EXECUTABLE = /usr/bin/chromium [✓] Linux toolchain - develop for Linux desktop • clang version 11.1.0 • cmake version 3.20.2 • ninja version 1.10.2 • pkg-config version 1.7.3 [✓] Android Studio • Android Studio at /opt/android-studio • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593) [✓] Connected device (3 available) • SM A515F (mobile) • 192.168.249.200:5555 • android-arm64 • Android 10 (API 29) • Linux (desktop) • linux • linux-x64 • Linux • Chrome (web) • chrome • web-javascript • Chromium 90.0.4430.93 Arch Linux • No issues found! ```

Flutter dependencies

Run flutter pub deps -- --style=compact and paste the output below:

Click To Expand ``` Dart SDK 2.12.3 Flutter SDK 2.0.6 RcG.Assist.AiO 1.1.4+432 dependencies: - audioplayers 0.18.3 [uuid path_provider flutter flutter_web_plugins] - camera 0.8.1 [flutter camera_platform_interface pedantic quiver] - carousel_slider 4.0.0-nullsafety.0 [flutter] - chewie 1.0.0 [cupertino_icons flutter video_player wakelock] - community_material_icon 5.9.55 [flutter] - connectivity 3.0.3 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web] - cupertino_icons 1.0.2 - device_info 2.0.0 [flutter device_info_platform_interface] - expansion_tile_card 2.0.0 [flutter] - file_picker 3.0.1 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface] - firebase_auth 1.1.1 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta] - firebase_messaging 9.1.3 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta] - flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine] - flutter_barcode_scanner 2.0.0 [flutter flutter_plugin_android_lifecycle] - flutter_email_sender 5.0.0 [flutter] - flutter_gravatar 2.0.2 [flutter flutter_test crypto] - flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math] - flutter_signature_pad 3.0.0 [flutter] - flutter_sms 2.3.1 [flutter flutter_web_plugins plugin_platform_interface url_launcher] - flutter_sound 8.1.1 [path_provider logger recase uuid provider flutter_spinkit path synchronized flutter flutter_sound_platform_interface flutter_sound_web] - flutter_speed_dial 3.0.5 [flutter] - flutter_typeahead 3.1.1 [flutter flutter_keyboard_visibility] - freezed_annotation 0.14.1 [collection json_annotation meta] - geocoding 2.0.0 [flutter geocoding_platform_interface] - geolocator 7.0.3 [flutter geolocator_platform_interface geolocator_web] - get 4.1.4 [flutter] - graphql_flutter 5.0.0-nullsafety.2 [graphql gql_exec flutter meta path_provider path connectivity hive plugin_platform_interface] - hive 2.0.4 [meta crypto] - hive_flutter 1.0.0 [flutter hive path_provider path] - http 0.13.2 [async http_parser meta path pedantic] - image 3.0.2 [archive meta xml] - in_app_update 2.0.0 [flutter] - json_annotation 4.0.1 - linked_scroll_controller 0.2.0-nullsafety.0 [flutter] - mime 1.0.0 - modulizer 2.0.1 [flutter get] - motion_sensors 0.1.0 [flutter vector_math] - multiselect_formfield 0.1.6 [flutter] - native_device_orientation 1.0.0 [flutter meta] - open_file 3.2.0 [flutter ffi] - package_info 2.0.0 [flutter] - path_provider 2.0.1 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows] - pedantic 1.11.0 - permission_handler 7.1.0 [flutter meta permission_handler_platform_interface] - photo_view 0.11.1 [flutter] - rcgforms 2.0.30 [flutter rxdart freezed_annotation reactive_forms flutter_typeahead rcgutils rcgwidgets rcgicons] - rcgicons 1.0.0 [flutter community_material_icon] - rcgutils 2.2.2 [flutter get intl rxdart fluttertoast graphql_flutter sticky_headers community_material_icon sentry_flutter] - rcgwidgets 2.0.16 [async flutter get graphql_flutter pedantic reactive_forms rxdart syncfusion_flutter_calendar tuple] - rxdart 0.26.0 - sentry_flutter 5.0.0 [flutter flutter_web_plugins sentry package_info_plus] - shared_preferences 2.0.5 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows] - soundpool 2.0.0-nullsafety.0 [flutter soundpool_platform_interface soundpool_web soundpool_macos] - sticky_headers 0.2.0 [flutter] - syncfusion_flutter_calendar 19.1.58 [flutter timezone syncfusion_flutter_core syncfusion_flutter_datepicker intl] - syncfusion_flutter_core 19.1.58 [vector_math flutter] - syncfusion_localizations 19.1.58 [flutter intl syncfusion_flutter_core] - tuple 2.0.0 [quiver] - uni_links 0.5.1 [flutter uni_links_platform_interface uni_links_web] - universal_platform 1.0.0-nullsafety - url_launcher 6.0.3 [flutter url_launcher_platform_interface url_launcher_linux url_launcher_macos url_launcher_windows url_launcher_web] - uuid 3.0.4 [crypto] dev dependencies: - build_runner 2.0.1 [args async analyzer build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style glob graphs http_multi_server io js logging meta mime package_config path pedantic pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml] - dart_code_metrics 3.1.0 [analyzer analyzer_plugin ansicolor args collection crypto file glob html meta path quiver source_span yaml] - flutter_driver 0.0.0 [file meta path vm_service webdriver flutter flutter_test fuchsia_remote_debug_protocol archive args async boolean_selector characters charcode clock collection convert crypto fake_async matcher platform process source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math] - flutter_launcher_icons 0.9.0 [args image path yaml] - freezed 0.14.1+3 [analyzer build build_config meta source_gen freezed_annotation] - hive_generator 1.1.0 [build source_gen hive analyzer source_helper] - json_serializable 4.1.1 [analyzer build build_config collection json_annotation meta path source_gen] - test 1.16.5 [analyzer async boolean_selector coverage http_multi_server io js node_preamble package_config path pedantic pool shelf shelf_packages_handler shelf_static shelf_web_socket source_span stack_trace stream_channel typed_data web_socket_channel webkit_inspection_protocol yaml test_api test_core] dependency overrides: - archive 3.1.2 [crypto path] - args 2.1.0 - convert 3.0.0 [typed_data] - crypto 3.0.1 [collection typed_data] - firebase_auth_platform_interface 4.1.1 [firebase_core flutter meta plugin_platform_interface] - graphql 5.0.0-nullsafety.4 [meta path gql gql_exec gql_link gql_http_link gql_transform_link gql_error_link gql_dedupe_link hive normalize http collection web_socket_channel stream_channel rxdart uuid] transitive dependencies: - _fe_analyzer_shared 21.0.0 [meta] - analyzer 1.5.0 [_fe_analyzer_shared cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml pedantic] - analyzer_plugin 0.6.0 [analyzer collection dart_style pub_semver] - ansicolor 2.0.1 - async 2.5.0 [collection] - boolean_selector 2.1.0 [source_span string_scanner] - build 2.0.1 [analyzer async convert crypto glob logging meta path] - build_config 1.0.0 [checked_yaml json_annotation path pubspec_parse yaml] - build_daemon 3.0.0 [built_collection built_value http_multi_server logging pedantic path pool shelf shelf_web_socket stream_transform watcher web_socket_channel] - build_resolvers 2.0.1 [analyzer build crypto graphs logging path package_config pool pub_semver stream_transform] - build_runner_core 7.0.0 [async build build_config build_resolvers collection convert crypto glob graphs json_annotation logging meta path package_config pedantic pool timing watcher yaml] - built_collection 5.0.0 - built_value 8.0.5 [built_collection collection fixnum] - camera_platform_interface 2.0.1 [flutter meta plugin_platform_interface cross_file stream_transform] - characters 1.1.0 - charcode 1.2.0 - checked_yaml 2.0.1 [json_annotation source_span yaml] - cli_util 0.3.0 [meta path] - clock 1.1.0 - code_builder 4.0.0 [built_collection built_value collection matcher meta] - collection 1.15.0 - connectivity_for_web 0.4.0 [connectivity_platform_interface flutter_web_plugins flutter] - connectivity_macos 0.2.0 [flutter] - connectivity_platform_interface 2.0.1 [flutter meta plugin_platform_interface] - coverage 0.15.2 [args logging package_config path source_maps stack_trace vm_service] - cross_file 0.3.1+1 [flutter meta] - csslib 0.17.0 [source_span] - dart_style 2.0.1 [analyzer args path pub_semver source_span] - device_info_platform_interface 2.0.1 [flutter meta plugin_platform_interface] - fake_async 1.2.0 [clock collection] - ffi 1.0.0 - file 6.0.0 [meta path] - firebase_auth_web 1.1.0 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser intl js meta] - firebase_core 1.1.0 [firebase_core_platform_interface firebase_core_web flutter meta] - firebase_core_platform_interface 4.0.0 [flutter meta plugin_platform_interface] - firebase_core_web 1.0.2 [firebase_core_platform_interface flutter flutter_web_plugins js meta] - firebase_messaging_platform_interface 2.1.3 [firebase_core flutter meta plugin_platform_interface] - firebase_messaging_web 1.0.6 [firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins js meta] - fixnum 1.0.0 - flutter_keyboard_visibility 5.0.1 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_web flutter] - flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface] - flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter] - flutter_plugin_android_lifecycle 2.0.1 [flutter] - flutter_sound_platform_interface 8.1.1 [flutter meta plugin_platform_interface] - flutter_sound_web 8.1.1 [flutter_sound_platform_interface flutter flutter_web_plugins meta js] - flutter_spinkit 5.0.0 [flutter] - flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data] - flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math] - fluttertoast 8.0.6 [flutter flutter_web_plugins] - fuchsia_remote_debug_protocol 0.0.0 [process vm_service file meta path platform] - geocoding_platform_interface 2.0.0 [flutter meta plugin_platform_interface] - geolocator_platform_interface 2.0.2 [flutter plugin_platform_interface vector_math meta] - geolocator_web 2.0.3 [flutter flutter_web_plugins geolocator_platform_interface] - glob 2.0.1 [async collection file path pedantic string_scanner] - gql 0.13.0-nullsafety.2 [collection meta source_span] - gql_dedupe_link 2.0.0-nullsafety.1 [meta gql_exec gql_link async] - gql_error_link 0.2.0-nullsafety.1 [async gql_exec gql_link meta] - gql_exec 0.3.0-nullsafety.2 [collection meta gql] - gql_http_link 0.4.0-nullsafety.1 [meta gql gql_exec gql_link http http_parser] - gql_link 0.4.0-nullsafety.3 [meta gql gql_exec] - gql_transform_link 0.2.0-nullsafety.1 [gql_exec gql_link] - graphs 2.0.0 - html 0.15.0 [csslib source_span] - http_multi_server 3.0.1 [async] - http_parser 4.0.0 [charcode collection source_span string_scanner typed_data] - intl 0.17.0 [clock path] - io 1.0.0 [meta path string_scanner] - js 0.6.3 - logger 1.0.0 - logging 1.0.1 - matcher 0.12.10 [stack_trace] - meta 1.3.0 - nested 1.0.0 [flutter] - node_preamble 1.4.13 - normalize 0.5.1-0.1.nullsafety.0 [gql collection] - package_config 2.0.0 [path] - package_info_plus 1.0.1 [flutter package_info_plus_platform_interface package_info_plus_linux package_info_plus_macos package_info_plus_windows package_info_plus_web] - package_info_plus_linux 1.0.1 [package_info_plus_platform_interface flutter path] - package_info_plus_macos 1.1.1 [flutter] - package_info_plus_platform_interface 1.0.1 [flutter meta plugin_platform_interface] - package_info_plus_web 1.0.1 [http package_info_plus_platform_interface flutter flutter_web_plugins meta] - package_info_plus_windows 1.0.1 [package_info_plus_platform_interface ffi flutter win32] - path 1.8.0 - path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter] - path_provider_macos 2.0.0 [flutter] - path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface] - path_provider_windows 2.0.1 [path_provider_platform_interface meta path flutter ffi win32] - permission_handler_platform_interface 3.3.0 [flutter meta plugin_platform_interface] - petitparser 4.1.0 [meta] - platform 3.0.0 - plugin_platform_interface 2.0.0 [meta] - pool 1.5.0 [async stack_trace] - process 4.0.0 [file path platform] - provider 5.0.0 [collection flutter nested] - pub_semver 2.0.0 [collection] - pubspec_parse 1.0.0 [checked_yaml collection json_annotation pub_semver yaml] - quiver 3.0.1 [matcher] - reactive_forms 10.2.0 [flutter intl] - recase 4.0.0 - sentry 5.0.0 [http meta stack_trace uuid] - shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface] - shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter] - shared_preferences_platform_interface 2.0.0 [flutter] - shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta] - shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows] - shelf 1.1.1 [async collection http_parser path stack_trace stream_channel] - shelf_packages_handler 3.0.0 [path shelf shelf_static] - shelf_static 1.0.0 [convert http_parser mime path shelf] - shelf_web_socket 1.0.1 [shelf stream_channel web_socket_channel] - sky_engine 0.0.99 - soundpool_macos 2.0.0-nullsafety.0 [flutter soundpool_platform_interface] - soundpool_platform_interface 2.0.0-nullsafety.0 [flutter meta plugin_platform_interface] - soundpool_web 2.0.0-nullsafety.0 [flutter flutter_web_plugins soundpool_platform_interface http] - source_gen 1.0.0 [analyzer async build dart_style glob meta path pedantic source_span] - source_helper 1.1.0 [analyzer collection source_gen] - source_map_stack_trace 2.1.0 [path stack_trace source_maps] - source_maps 0.10.10 [source_span] - source_span 1.8.0 [charcode collection path term_glyph] - stack_trace 1.10.0 [path] - stream_channel 2.1.0 [async] - stream_transform 2.0.0 - string_scanner 1.1.0 [charcode source_span] - sync_http 0.2.0 - syncfusion_flutter_datepicker 19.1.58-beta [flutter intl syncfusion_flutter_core] - synchronized 3.0.0 - term_glyph 1.2.0 - test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher] - test_core 0.3.15 [analyzer async args boolean_selector collection coverage glob io meta package_config path pedantic pool source_map_stack_trace source_maps source_span stack_trace stream_channel vm_service yaml matcher test_api] - timezone 0.7.0-nullsafety.0 [path] - timing 1.0.0 [json_annotation] - typed_data 1.3.0 [collection] - uni_links_platform_interface 1.0.0 [flutter plugin_platform_interface] - uni_links_web 0.1.0 [flutter flutter_web_plugins uni_links_platform_interface] - url_launcher_linux 2.0.0 [flutter] - url_launcher_macos 2.0.0 [flutter] - url_launcher_platform_interface 2.0.2 [flutter plugin_platform_interface] - url_launcher_web 2.0.0 [url_launcher_platform_interface meta flutter flutter_web_plugins] - url_launcher_windows 2.0.0 [flutter] - vector_math 2.1.0 - video_player 2.1.1 [meta video_player_platform_interface video_player_web flutter flutter_test] - video_player_platform_interface 4.1.0 [flutter meta flutter_test] - video_player_web 2.0.0 [flutter flutter_web_plugins meta video_player_platform_interface] - vm_service 5.5.0 [meta] - wakelock 0.4.0 [flutter meta wakelock_macos wakelock_platform_interface wakelock_web] - wakelock_macos 0.1.0 [flutter flutter_web_plugins wakelock_platform_interface] - wakelock_platform_interface 0.2.0 [flutter meta] - wakelock_web 0.2.0 [flutter flutter_web_plugins js wakelock_platform_interface] - watcher 1.0.0 [async path pedantic] - web_socket_channel 2.0.0 [async crypto stream_channel] - webdriver 2.1.2 [archive matcher path stack_trace sync_http] - webkit_inspection_protocol 1.0.0 [logging] - win32 2.0.5 [ffi] - xdg_directories 0.2.0 [meta path process] - xml 5.1.0 [collection meta petitparser] - yaml 3.1.0 [collection source_span string_scanner] ```

markusaksli-nc commented 3 years ago

Hi @psrcek Not seeing this when running the build locally (or on https://pub.green/packages/firebase_auth) It could be that your platform interface dependency is outdated since this was fixed. Could you try upgrading to firebase_auth: ^1.1.2? Thank you

zumrywahid commented 3 years ago

Temporary workaround

firebase_core: "1.1.0" firebase_auth: "1.1.0" cloud_firestore: "1.0.7" firebase_messaging: "9.1.3" firebase_storage: "8.0.5"

Note : Dont use ^ symbol.

davidpanic commented 3 years ago

I was holding back from updating because of #5979. Closing this issue since it seems to be fixed in 1.1.3.