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.73k stars 3.98k forks source link

[Firestore] Firestore could not find debug symbolys when in CI/CD but release works #13465

Open richard457 opened 1 month ago

richard457 commented 1 month ago

Is there an existing issue for this?

Which plugins are affected?

Database

Which platforms are affected?

Windows

Description

The app compiles very well in a release on Windows but when it is in debug mode firestore could not find the debug symbol which break CI/CD see error LNK2001: unresolved external symbol "declspec(dllimport) public: static void cdecl std::_Crt_new_delete::operator delete(void *)" (_imp??3_Crt_new_delete@std@@SAXPEAX@Z) https://github.com/yegobox/flipper/actions/runs/11178884632/job/31077367746

Reproducing the issue

Do a simple firestore app with an integration test or see https://github.com/yegobox/flipper/actions/runs/11178884632/job/31077367746 then run integration testing on windows better in CI/CD

Firebase Core version

3.6.0

Flutter Version

3.24.3

Relevant Log Output

https://github.com/yegobox/flipper/actions/runs/11178884632/job/31077367746  error LNK2001: unresolved external symbol "__declspec(dllimport) public: static void __cdecl std::_Crt_new_delete::operator delete(void *)" (__imp_??3_Crt_new_delete@std@@SAXPEAX@Z)

Flutter dependencies

name: your_project_name description: A new Flutter project. version: 1.0.0+1

environment: sdk: ">=2.12.0 <3.0.0"

dependencies: intl: ^0.19.0 injectable: ^2.4.0 get_it: ^7.7.0 stacked: ^3.4.1+1

maybe it is time to move all constants to its own package

flipper_services: ^1.0.0-dev

causing issue on web https://github.com/pd4d10/flutter-vector-icons/issues/19

meta: "^1.7.0" flutter: sdk: flutter get: ^4.6.1 flipper_models: ^0.0.1-dev.5 flipper_routing: ^0.0.1-dev.3 timeago: ^3.4.0 mime: ^1.0.5 open_filex: ^4.5.0 ant_icons: ^2.0.0-nullsafety.0 pubnub: ^4.3.1 feather_icons: ^1.1.0-nullsafety.0 flex_color_scheme: ^4.2.0 image_picker: ^0.8.7+5 file_picker: ^8.0.7

flutter:

flutter:

sdk: flutter

firebase_ui_auth: ^1.15.0 azlistview: ^2.0.0 qr_code_scanner: ^1.0.1

I will abandon qr_code_scanner and switch to mobile_scanner even though this

will increase app size.

mobile_scanner: ^3.2.0

cached_network_image: ^3.2.1 flutter_slidable: ^1.3.0 flutter_text_drawable: ^1.0.0 font_awesome_flutter: ^9.0.0 upgrader: ^10.0.0-alpha.1 universal_platform: ^1.0.0+1 ionicons: ^0.1.2 overlay_support: ^2.1.0

adding this because I need constants from it,

flutter_settings_ui: ^3.0.1

flutter_inappwebview: ^6.0.0-beta.30

url_launcher: ^6.3.0 google_fonts: ^6.1.0

Do not update firebase_auth https://github.com/firebase/flutterfire/issues/5964

number_display: ^3.0.0

firebase_auth_desktop: ^1.0.2-flipper

url: https://github.com/Cavin6080/form_bloc.git

path: packages/flutter_form_bloc

firebase_auth_desktop: ^1.0.2-flipper

firebase_core: ^3.6.0

firebase_core_desktop: ^1.0.2-dev

The following adds the Cupertino Icons font to your application.

Use with the CupertinoIcons class for iOS style icons.

cupertino_icons: ^1.0.2

flutter_vector_icons: ^2.0.0

flipper_login: ^0.0.1-dev.5 connectivity_plus: ^6.0.3

google_mobile_ads: ^5.0.0

device_info_plus: ^10.1.0

provider: ^6.0.1 gap: ^2.0.0 barcode: ">=2.2.3 <3.0.0" qr_flutter: 4.0.2

path: ../

receipt: path: ../

Splash screen handle

flutter_native_splash: ^2.3.2 permission_handler: ^11.3.1 flutter_svg: ^2.0.0 modal_bottom_sheet: ^3.0.0-pre flipper_ui: ^1.0.3

flipper_ui: ^1.0.3

fluentui_system_icons: ^1.1.252 easy_sidemenu: ^0.6.0 flipper_socials: 1.0.0+1

flipper_socials: 1.0.0+1

flipper_localize: ^1.0.0-dev tray_manager: ^0.2.3 pinput: ^4.0.0 flutter_screen_lock: ^9.0.4 local_auth: ^2.1.7

firebase_admob_config: ^1.3.1

google_mobile_ads: ^5.0.0

flutter_riverpod: ^2.4.5 riverpod_annotation: ^2.3.0 flutter_hooks: riverpod: ^2.0.0 hooks_riverpod: ^2.0.0 bottom_sheet: ^4.0.0 rxdart: ^0.27.3 swipe_to_complete: ^0.0.1 badges: ^3.1.2 community_charts_flutter: ^1.0.2

dropdown_search: ^5.0.6 loading_animation_widget: ^1.2.0+4 email_validator_flutter: ^1.0.0

TODO: because this is community package, I have applied for community licence

TODO: because this is community package, I have applied for community licence

the licence is for company less than 1M in revenue and have not received 3M in outside source

Meaning I am using this package for now to speed up the process of development

if we hit that limit, we will have to switch to paid package or implement some functionality

by ourself. but for esence of time I do not want to wast time

Synfusion package compatibility https://help.syncfusion.com/flutter/system-requirements#sdk-version-compatibility

syncfusion_flutter_datepicker: ^26.2.11 syncfusion_flutter_datagrid: ^26.2.11 syncfusion_flutter_xlsio: ^26.2.11 syncfusion_flutter_datagrid_export: ^26.2.11 syncfusion_flutter_core: ^26.2.11

https://github.com/yegobox/flutter_datetime_picker

flutter_datetime_picker: git: url: https://github.com/ryojiro/flutter_datetime_picker.git ref: 32ea47240c10469ad31db0084f5d9b7a12d16e01 path: ../

realm: ^20.0.0

sizer: ^2.0.15

firebase_app_check: ^0.2.1+12

talker_flutter: ^4.1.5 collection: ^1.15.0 flipper_loading: ^2.0.0

flipper_loading: ^2.0.0

window_size: git: url: https://github.com/google/flutter-desktop-embedding.git path: plugins/window_size ref: 6c66ad23ee79749f30a8eece542cf54eaf157ed8

may be it is time to create utils package and move everything shareble

may be it is time to create utils package and move everything shareble

in all packages or use flipper_ui package

flipper_dashboard: ^0.0.1-dev.5 stacked_services: ^1.0.4 url_strategy: ^0.2.0 logger: ^1.1.0 flipper_actionable: 0.0.1 responsive_builder: ^0.7.0 flutter_animate: ^4.1.0 animated_icon_button: ^1.0.2 pip_view: ^0.9.7 getwidget: ^3.0.1 fast_cached_network_image: ^1.1.1

custom_floating_action_button: ^0.0.3

flutter_chat_ui: ^1.6.10

TODO: added flipper_dashboard here only becase we need customAppBar

firebase_remote_config: ^5.1.3 share_plus: ^9.0.0

in_app_review: ^2.0.6

firebase_messaging: ^15.1.3 image: ^4.0.17 firebase_auth: ^5.1.4

the bellow package has outdated image package, but I do not It is needed now

esc_pos_utils_plus: ^2.0.1+3

nfc_manager: ^3.2.0

geolocator: ^9.0.2 geocode: ^1.0.3 firebase_analytics: ^11.3.3

firebase_crashlytics: ^4.1.3

location: ^6.0.2

flutter_uploader: ^3.0.0-beta.4

google_sign_in: ^6.2.1 http: ">=0.13.0 <2.0.0" path_provider: ^2.1.4 path: ^1.8.1 googleapis: ^11.2.0 googleapis_auth: ^1.4.1 flipper_nfc: ^1.2.0 timezone: ^0.9.2 flutter_statusbarcolor_ns: ^0.5.0-flipper

TODO: find out how to take advantage this

TODO: find out how to take advantage this

final prefs = await SharedPreferences.getInstance();

final store = AsyncAuthStore(

save: (String data) async => prefs.setString('pb_auth', data),

initial: prefs.getString('pb_auth'),

);

final pb = PocketBase('http://example.com', authStore: store);

TODO: take advantage of pb.backups.upload(file) for backup of database

pocketbase: ^0.17.0 shared_preferences: ^2.3.2 newrelic_mobile: ^1.0.5 flutter_local_notifications: ^17.2.2 local_notifier: git: url: https://github.com/yegobox/local_notifier.git ref: main # branch name window_manager: ^0.4.0 launcher_entry: ^0.1.1

firebase_admob_config: ^1.3.1

internet_connection_checker: ^1.0.0+1 flutter_form_bloc: 0.31.0-dev

git:

flutter_carousel_slider: ^1.0.9 country_code_picker: ^3.0.0 firebase_ui_localizations: ^1.9.0 firebase_ui_oauth: ^1.5.3 firebase_ui_oauth_google: ^1.3.3 sentry: ^8.6.0 sentry_flutter: ^8.9.0

equatable: ^2.0.3 built_value: ^8.1.4 scrollable_positioned_list: path: ../ built_collection: ^5.1.1 stock: ^1.0.1 html_unescape: ^2.0.0 freezed_annotation: ^2.4.4

isolated_worker: ^0.1.1

adding realm to replace firestore on desktop in transporting data to cloud

dart_mappable: ^4.2.1 dio: ^5.4.3+1 talker_dio_logger: ^4.1.5 talker: ^4.1.5 animations: ^2.0.0 system_theme: ^2.0.0 flutter_localizations: sdk: flutter flutter_localization: ^0.1.11 get_storage: ^2.1.1 js: ^0.6.3 flutter_web_plugins: sdk: flutter args: htmltopdfwidgets: markdown: string_scanner: pdf: ^3.10.3 printing: ^5.13.3 ffi: ">=2.0.0 <3.0.0" pdf_widget_wrapper: '>=1.0.0 <2.0.0' plugin_platform_interface: ^2.1.0 web: ^0.5.1 archive: ^3.1.0 bidi: ^2.0.10 crypto: ^3.0.0 path_parsing: ">=0.2.0 <2.0.0" vector_math: ^2.1.0 xml: ">=6.3.0 <7.0.0" flutter_list_drag_and_drop: ^0.1.8 dotted_line: ^3.2.2 syncfusion_flutter_pdf: ^26.2.11 syncfusion_flutter_barcodes: ^26.2.11 win32: ^5.0.0 qr: ^3.0.0 dart_console: ^1.1.0-pre.1 flutter_bloc: ^8.0.1 form_bloc: path: "../" flutter_keyboard_visibility: ^6.0.0 bloc: ^8.0.1

flipper_actionable: ^0.0.1

amplify_core: ^2.0.0 amplify_api: ^2.0.0 amplify_flutter: ^2.0.0 amplify_auth_cognito: ^2.0.0 amplify_storage_s3: ^2.0.0

dev_dependencies: melos: ^3.2.0 flutter_test: sdk: flutter

The "flutter_lints" package below contains aset of recommended lints to

encourage good coding practices. The lint set provided by the package is

activated in the analysis_options.yaml file located at the root of your

package. See that file for information about deactivating specific lint

rules and activating additional ones.

flutter_lints: ^3.0.1 injectable_generator: ^2.6.0

The "flutter_lints" package below contains a set of recommended lints to

encourage good coding practices. The lint set provided by the package is

activated in the analysis_options.yaml file located at the root of your

package. See that file for information about deactivating specific lint

rules and activating additional ones.

build_runner: ^2.0.0 custom_lint: ^0.6.4 riverpod_generator: ^2.3.5

custom_lint:

riverpod_generator: ^2.3.5

riverpod_lint: ^2.3.7 stacked_generator: mockito: ^5.4.4 test: "^1.20.1" dart_mappable_builder: ^4.2.1 isar_generator: ^3.1.0+1 patrol: ^3.11.0 flutter_launcher_icons: ^0.13.1

objectbox_generator: ^1.4.0

matcher: ^0.12.10 msix: ^3.16.8 nock: ^1.2.3 flutter_assets_generator: ^0.0.8 integration_test: sdk: flutter

flutter_driver:

sdk: flutter

qr_code_scanner: path: ../ lints: ^3.0.0

test_coverage: ^0.4.3

coveralls: ^5.2.0

test: ^1.16.5

pedantic: ^1.11.0 mocktail: ^1.0.1 collection:

The following adds the Cupertino Icons font to your application.

Use with the CupertinoIcons class for iOS style icons.

cupertino_icons: ^1.0.4 example: path: ./example bloc_test: ^9.0.2 fire_line_diff: ^1.5.3

Additional context and comments

No response

SelaseKay commented 1 month ago

cc @Lyokone