Skip to content

[firebase_database]: WASM dry-run warning at database.dart:680 despite js_interop migration #17900

@jpiabrantes

Description

@jpiabrantes

Is there an existing issue for this?

  • I have searched the existing issues.

Which plugins are affected?

Database

Which platforms are affected?

Web

Description

When running flutter build web --release, the WASM dry-run reports an invalid_runtime_check_with_js_interop_types lint violation in firebase_database_web:

file:///Users/[...]/.pub-cache/hosted/pub.dev/firebase_database_web-0.2.7+1/lib/src/interop/database.dart 680:28 -
invalid_runtime_check_with_js_interop_types lint violation: Cast from 'JSAny?' to 'DatabaseReference' casts a JS interop value to a Dart type, which might not be platform-consistent. (8)

This persists despite:

  • The js_interop migration being marked complete in #12466 (via #12530)
  • The "more explicit interop types" fix in #17823 being merged and released in 0.2.7

Reproducing the issue

Add firebase_database: ^12.1.0 to
pubspec.yaml
Run flutter build web --release
Observe the WASM dry-run warning

Firebase Core version

4.2.1

Flutter Version

3.38.3

Relevant Log Output

Wasm dry run findings:
Found incompatibilities with WebAssembly.

file:///Users/joaoabrantis/.pub-cache/hosted/pub.dev/firebase_database_web-0.2.7+1/lib/src/interop/database.dart 680:28 -
invalid_runtime_check_with_js_interop_types lint violation: Cast from 'JSAny?' to 'DatabaseReference' casts a JS interop value to a Dart
type, which might not be platform-consistent. (8)


Consider addressing these issues to enable wasm builds. See docs for more info: https://docs.flutter.dev/platform-integration/web/wasm


Use --no-wasm-dry-run to disable these warnings.

Flutter dependencies

Expand Flutter dependencies snippet
Dart SDK 3.10.1
Flutter SDK 3.38.3
alpacalaw 1.0.7+1

dependencies:
- auto_size_text 3.0.0 [flutter]
- cloud_firestore 6.1.0 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cupertino_icons 1.0.8
- diacritic 0.1.6
- file_picker 9.2.3 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path win32 cross_file web]
- firebase_analytics 12.0.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 6.1.2 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_core 4.2.1 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_database 12.1.0 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_storage 13.0.4 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_bloc 9.1.1 [bloc flutter provider]
- flutter_markdown 0.6.23 [flutter markdown meta path]
- flutter_svg 2.2.3 [flutter http vector_graphics vector_graphics_codec vector_graphics_compiler]
- flutter_web_plugins 0.0.0 [flutter]
- flutter_widget_from_html 0.10.6 [flutter flutter_widget_from_html_core fwfh_cached_network_image fwfh_chewie fwfh_just_audio fwfh_svg fwfh_url_launcher fwfh_webview html]
- go_router 17.0.0 [collection flutter flutter_web_plugins logging meta]
- google_fonts 6.3.3 [crypto flutter http path_provider]
- http 1.6.0 [async http_parser meta web]
- intl 0.20.2 [clock meta path]
- json_annotation 4.9.0 [meta]
- markdown_widget 2.3.2+8 [flutter markdown highlight flutter_highlight url_launcher visibility_detector scroll_to_index]
- responsive_framework 1.5.1 [flutter collection]
- shared_preferences 2.5.3 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows]
- url_launcher 6.3.2 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows]
- uuid 4.5.2 [crypto meta fixnum]
- web 1.1.1

dev dependencies:
- build_runner 2.10.4 [analyzer args async build build_config build_daemon built_collection built_value code_builder collection convert crypto dart_style glob graphs http_multi_server io json_annotation logging meta mime package_config path pool pub_semver shelf shelf_web_socket stream_transform watcher web_socket_channel yaml]
- flutter_lints 6.0.0 [lints]
- flutter_test 0.0.0 [flutter test_api matcher path fake_async clock stack_trace vector_math leak_tracker_flutter_testing collection meta stream_channel]
- freezed 3.2.3 [analyzer build build_config collection meta source_gen freezed_annotation json_annotation dart_style pub_semver]
- json_serializable 6.11.2 [analyzer async build build_config dart_style json_annotation meta path pub_semver pubspec_parse source_gen source_helper]

transitive dependencies:
- _fe_analyzer_shared 91.0.0 [meta]
- _flutterfire_internals 1.3.64 [collection firebase_core firebase_core_platform_interface flutter meta]
- analyzer 8.4.1 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- args 2.7.0
- async 2.13.0 [collection meta]
- audio_session 0.1.25 [flutter flutter_web_plugins rxdart meta]
- bloc 9.1.0 [meta]
- boolean_selector 2.1.2 [source_span string_scanner]
- build 4.0.3 [analyzer crypto glob logging package_config path]
- build_config 1.2.0 [checked_yaml json_annotation path pubspec_parse]
- build_daemon 4.1.1 [built_collection built_value crypto http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- built_collection 5.1.1
- built_value 8.12.1 [built_collection collection fixnum meta]
- cached_network_image 3.4.1 [cached_network_image_platform_interface cached_network_image_web flutter flutter_cache_manager octo_image]
- cached_network_image_platform_interface 4.1.1 [flutter flutter_cache_manager]
- cached_network_image_web 1.3.1 [cached_network_image_platform_interface flutter flutter_cache_manager web]
- characters 1.4.0
- checked_yaml 2.0.4 [json_annotation source_span yaml]
- chewie 1.13.0 [cupertino_icons flutter provider video_player wakelock_plus]
- clock 1.1.2
- cloud_firestore_platform_interface 7.0.4 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 5.1.0 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins]
- code_builder 4.11.0 [built_collection built_value collection matcher meta]
- collection 1.19.1
- convert 3.1.2 [typed_data]
- cross_file 0.3.5+1 [meta web]
- crypto 3.0.7 [typed_data]
- csslib 1.0.2 [source_span]
- dart_style 3.1.3 [analyzer args collection package_config path pub_semver source_span yaml]
- dbus 0.7.11 [args ffi meta xml]
- fake_async 1.3.3 [clock collection]
- ffi 2.1.4
- file 7.0.1 [meta path]
- firebase_analytics_platform_interface 5.0.4 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.6.1 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins]
- firebase_auth_platform_interface 8.1.4 [_flutterfire_internals collection firebase_core flutter http meta plugin_platform_interface]
- firebase_auth_web 6.1.0 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser meta web]
- firebase_core_platform_interface 6.0.2 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 3.3.0 [firebase_core_platform_interface flutter flutter_web_plugins meta web]
- firebase_database_platform_interface 0.3.0 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.7+1 [collection firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins]
- firebase_storage_platform_interface 5.2.15 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.11.0 [_flutterfire_internals async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http meta web]
- fixnum 1.1.1
- flutter_cache_manager 3.4.1 [clock collection file flutter http path path_provider rxdart sqflite uuid]
- flutter_highlight 0.7.0 [flutter highlight]
- flutter_plugin_android_lifecycle 2.0.33 [flutter]
- flutter_widget_from_html_core 0.10.6 [csslib flutter html]
- freezed_annotation 3.1.0 [collection json_annotation meta]
- fwfh_cached_network_image 0.7.0+7 [cached_network_image flutter flutter_cache_manager flutter_widget_from_html_core]
- fwfh_chewie 0.7.1+4 [chewie flutter flutter_widget_from_html_core video_player]
- fwfh_just_audio 0.9.0+3 [flutter flutter_widget_from_html_core just_audio]
- fwfh_svg 0.8.3 [flutter flutter_svg flutter_widget_from_html_core]
- fwfh_url_launcher 0.9.1 [flutter flutter_widget_from_html_core url_launcher]
- fwfh_webview 0.9.0+2 [flutter flutter_widget_from_html_core webview_flutter webview_flutter_android webview_flutter_wkwebview]
- glob 2.1.3 [async collection file path string_scanner]
- graphs 2.3.2 [collection]
- highlight 0.7.0 [collection]
- html 0.15.6 [csslib source_span]
- http_multi_server 3.2.2 [async]
- http_parser 4.1.2 [collection source_span string_scanner typed_data]
- io 1.0.5 [meta path string_scanner]
- just_audio 0.9.46 [just_audio_platform_interface just_audio_web audio_session rxdart path path_provider async uuid crypto meta flutter]
- just_audio_platform_interface 4.6.0 [flutter plugin_platform_interface]
- just_audio_web 0.4.16 [just_audio_platform_interface flutter flutter_web_plugins web synchronized]
- leak_tracker 11.0.2 [clock collection meta path vm_service]
- leak_tracker_flutter_testing 3.0.10 [flutter leak_tracker leak_tracker_testing matcher meta]
- leak_tracker_testing 3.0.2 [leak_tracker matcher meta]
- lints 6.0.0
- logging 1.3.0
- markdown 7.3.0 [args meta]
- matcher 0.12.17 [async meta stack_trace term_glyph test_api]
- material_color_utilities 0.11.1 [collection]
- meta 1.17.0
- mime 2.0.0
- nested 1.0.0 [flutter]
- octo_image 2.1.0 [flutter]
- package_config 2.2.0 [path]
- package_info_plus 9.0.0 [ffi flutter flutter_web_plugins http meta path package_info_plus_platform_interface web win32 clock]
- package_info_plus_platform_interface 3.2.1 [flutter meta plugin_platform_interface]
- path 1.9.1
- path_parsing 1.1.0 [meta vector_math]
- path_provider 2.1.5 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows]
- path_provider_android 2.2.22 [flutter path_provider_platform_interface]
- path_provider_foundation 2.5.1 [flutter path_provider_platform_interface]
- path_provider_linux 2.2.1 [ffi flutter path path_provider_platform_interface xdg_directories]
- path_provider_platform_interface 2.1.2 [flutter platform plugin_platform_interface]
- path_provider_windows 2.3.0 [ffi flutter path path_provider_platform_interface]
- petitparser 7.0.1 [meta collection]
- platform 3.1.6
- plugin_platform_interface 2.1.8 [meta]
- pool 1.5.2 [async stack_trace]
- provider 6.1.5+1 [collection flutter nested]
- pub_semver 2.2.0 [collection]
- pubspec_parse 1.5.0 [checked_yaml collection json_annotation pub_semver yaml]
- rxdart 0.28.0
- scroll_to_index 3.0.1 [flutter]
- shared_preferences_android 2.4.18 [flutter shared_preferences_platform_interface]
- shared_preferences_foundation 2.5.6 [flutter shared_preferences_platform_interface]
- shared_preferences_linux 2.4.1 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface]
- shared_preferences_platform_interface 2.4.1 [flutter plugin_platform_interface]
- shared_preferences_web 2.4.3 [flutter flutter_web_plugins shared_preferences_platform_interface web]
- shared_preferences_windows 2.4.1 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface]
- shelf 1.4.2 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 3.0.0 [shelf stream_channel web_socket_channel]
- sky_engine 0.0.0
- source_gen 4.1.1 [analyzer async build dart_style glob path pub_semver source_span yaml]
- source_helper 1.3.8 [analyzer source_gen]
- source_span 1.10.1 [collection path term_glyph]
- sqflite 2.4.2 [flutter sqflite_android sqflite_darwin sqflite_platform_interface sqflite_common path]
- sqflite_android 2.4.2+2 [flutter sqflite_common path sqflite_platform_interface]
- sqflite_common 2.5.6 [synchronized path meta]
- sqflite_darwin 2.4.2 [flutter sqflite_platform_interface meta sqflite_common path]
- sqflite_platform_interface 2.4.0 [flutter platform sqflite_common plugin_platform_interface meta]
- stack_trace 1.12.1 [path]
- stream_channel 2.1.4 [async]
- stream_transform 2.1.1
- string_scanner 1.4.1 [source_span]
- synchronized 3.4.0
- term_glyph 1.2.2
- test_api 0.7.7 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph]
- typed_data 1.4.0 [collection]
- url_launcher_android 6.3.28 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.3.6 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.2.2 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.2.5 [flutter url_launcher_platform_interface]
- url_launcher_platform_interface 2.3.2 [flutter plugin_platform_interface]
- url_launcher_web 2.4.1 [flutter flutter_web_plugins url_launcher_platform_interface web]
- url_launcher_windows 3.1.5 [flutter url_launcher_platform_interface]
- vector_graphics 1.1.19 [flutter http vector_graphics_codec]
- vector_graphics_codec 1.1.13
- vector_graphics_compiler 1.1.19 [args meta path path_parsing vector_graphics_codec xml]
- vector_math 2.2.0
- video_player 2.10.1 [flutter html video_player_android video_player_avfoundation video_player_platform_interface video_player_web]
- video_player_android 2.8.22 [flutter video_player_platform_interface]
- video_player_avfoundation 2.8.8 [flutter video_player_platform_interface]
- video_player_platform_interface 6.6.0 [flutter plugin_platform_interface]
- video_player_web 2.4.0 [flutter flutter_web_plugins video_player_platform_interface web]
- visibility_detector 0.4.0+2 [flutter]
- vm_service 15.0.2
- wakelock_plus 1.4.0 [flutter flutter_web_plugins meta wakelock_plus_platform_interface win32 dbus package_info_plus web]
- wakelock_plus_platform_interface 1.3.0 [flutter plugin_platform_interface meta]
- watcher 1.1.4 [async path]
- web_socket 1.0.1 [web]
- web_socket_channel 3.0.3 [async crypto stream_channel web web_socket]
- webview_flutter 4.9.0 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]
- webview_flutter_android 3.16.9 [flutter webview_flutter_platform_interface]
- webview_flutter_platform_interface 2.14.0 [flutter meta plugin_platform_interface]
- webview_flutter_wkwebview 3.23.4 [flutter meta path webview_flutter_platform_interface]
- win32 5.15.0 [ffi]
- xdg_directories 1.1.0 [meta path]
- xml 6.6.1 [collection meta petitparser]
- yaml 3.1.3 [collection source_span string_scanner]

Additional context and comments

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions