Skip to content

[cloud_firestore]: Windows app crashes when Firestore is terminated and reinitialized - terminated instance remains cached #17781

@chaudharydeepanshu

Description

@chaudharydeepanshu

Is there an existing issue for this?

  • I have searched the existing issues.

Which plugins are affected?

Database

Which platforms are affected?

Windows

Description

Windows app crashes when Firestore is initialized, then terminated and reinitialized with a listener added. The crash happens because terminate() doesn't remove the instance from the plugin's cache, so when the app tries to reinitialize Firestore and add a listener, it gets the terminated instance back and crashes with "The client has already been terminated".

Expected behavior:

  • Initialize Firestore and use it (add listeners, query data)
  • Restart app and call terminate() to clean up for any reason
  • Reinitialize Firestore
  • Continue using Firestore normally with fresh instance

Actual behavior:

  • Initialize Firestore - works fine
  • Use Firestore (queries, listeners) - works fine
  • Restart app and call terminate() - succeeds
  • Try to reinitialize and use Firestore - CRASHES
  • Error: "Illegal state: The client has already been terminated"
  • No graceful error, instant crash

Reproducing the issue

Repro code:

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  debugPrint('[REPRO TEST] Initializing Firebase...');
  await Firebase.initializeApp(
    options: const FirebaseOptions(
      apiKey: 'YOUR_API_KEY',
      appId: 'YOUR_APP_ID',
      messagingSenderId: 'YOUR_SENDER_ID',
      projectId: 'YOUR_PROJECT_ID',
      storageBucket: 'YOUR_STORAGE_BUCKET',
    ),
  );

  debugPrint('[REPRO TEST] Firebase initialized');

  // This pattern triggers the bug: terminate then try to use Firestore again
  debugPrint('[REPRO TEST] Calling terminate()...');
  await FirebaseFirestore.instance.terminate();
  debugPrint('[REPRO TEST] Terminate completed');

  debugPrint('[REPRO TEST] Calling clearPersistence()...');
  await FirebaseFirestore.instance.clearPersistence();
  debugPrint('[REPRO TEST] ClearPersistence completed');

  debugPrint('[REPRO TEST] Starting app - this should work with the fix...');
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Firestore Bug Repro',
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Firestore Windows Bug Test'),
        ),
        body: Center(
          child: StreamBuilder<QuerySnapshot>(
            // This will crash WITHOUT the fix because it gets terminated instance from cache
            // With the fix, it should work fine
            stream: FirebaseFirestore.instance.collection('test').snapshots(),
            builder: (context, snapshot) {
              if (snapshot.hasError) {
                return Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    const Icon(Icons.error, color: Colors.red, size: 64),
                    const SizedBox(height: 16),
                    Text(
                      'Error: ${snapshot.error}',
                      style: const TextStyle(color: Colors.red),
                      textAlign: TextAlign.center,
                    ),
                  ],
                );
              }

              if (!snapshot.hasData) {
                return const Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    CircularProgressIndicator(),
                    SizedBox(height: 16),
                    Text('Loading Firestore data...'),
                  ],
                );
              }

              return Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  const Icon(Icons.check_circle, color: Colors.green, size: 64),
                  const SizedBox(height: 16),
                  const Text(
                    '✓ SUCCESS!',
                    style: TextStyle(
                      fontSize: 24,
                      fontWeight: FontWeight.bold,
                      color: Colors.green,
                    ),
                  ),
                  const SizedBox(height: 8),
                  const Text('Firestore is working after terminate()'),
                  const SizedBox(height: 16),
                  Text(
                    'Documents in collection: ${snapshot.data!.docs.length}',
                    style: const TextStyle(fontSize: 16),
                  ),
                ],
              );
            },
          ),
        ),
      ),
    );
  }
}

Steps:

  1. Launch app: flutter run -d windows lib/main_bug_repro.dart
  2. Immediately crashes on launch with below logs.

Firebase Core version

3.12.1

Flutter Version

3.35.4

Relevant Log Output

  Console output showing the crash sequence:

  [REPRO TEST] Initializing Firebase...
  [REPRO TEST] Firebase initialized
  [REPRO TEST] Calling terminate()...
  [REPRO TEST] Terminate completed
  [REPRO TEST] Calling clearPersistence()...
  [REPRO TEST] ClearPersistence completed
  [REPRO TEST] Starting app - this should work with the fix...
  [App crashes immediately when adding snapshot listener]

  WinDbg debugging commands and output:

  1. Launch app in WinDbg:
     > g
     (continue execution until crash)

  2. On crash occurs, exception examine:
     > .exr -1
     ExceptionAddress: 00007ffbb17d001c (KERNELBASE!RaiseException+0x000000000000006c)
     ExceptionCode: e06d7363 (C++ EH exception)
     Exception Type: std::logic_error

  3. Analyze crash:
     > !analyze -v
     SYMBOL_NAME: myapp!firebase::firestore::util::Throw+2ef
     FAILURE_BUCKET_ID: CPP_EXCEPTION_e06d7363_myapp.exe!firebase::firestore::util::Throw

  4. Exception message in memory:
     > db 0x000001ba`a4294890 L100

     000001ba`a4294890  49 6c 6c 65 67 61 6c 20-73 74 61 74 65 3a 20 54  Illegal state: T
     000001ba`a42948a0  68 65 20 63 6c 69 65 6e-74 20 68 61 73 20 61 6c  he client has al
     000001ba`a42948b0  72 65 61 64 79 20 62 65-65 6e 20 74 65 72 6d 69  ready been termi
     000001ba`a42948c0  6e 61 74 65 64 2e 00 cd-cd cd cd cd cd cd cd cd  nated...........

     Full message: "Illegal state: The client has already been terminated."

  5. Call stack:
     > k
     KERNELBASE!RaiseException+0x6c
     VCRUNTIME140D!_CxxThrowException+0xad
     firebase::firestore::util::Throw
     firebase::firestore::Query::AddSnapshotListener
     QuerySnapshotStreamHandler::OnListenInternal [cloud_firestore_plugin.cpp]

  Plugin execution flow with debug logging added:

  [FIRESTORE] >>> Terminate called
  [FIRESTORE] Terminate succeeded (but instance stays in cache - BUG)
  [FIRESTORE] >>> ClearPersistence called
  [FIRESTORE] GetFirestoreFromPigeon CALLED
  [FIRESTORE] Found in cache! Returning cached instance (TERMINATED INSTANCE!)
  [FIRESTORE] >>> QuerySnapshot called
  [FIRESTORE] *** ABOUT TO CALL query_->AddSnapshotListener() ***
  (crash) C++ EH exception - code e06d7363
  Exception: "Illegal state: The client has already been terminated"
  APPLICATION CRASH

Flutter dependencies

Expand Flutter dependencies snippet
Dart SDK 3.9.2
Flutter SDK 3.35.4
myapp 0.107.134+1

dependencies:
- advertising_id 2.7.1 [flutter]
- android_play_install_referrer 0.4.0 [flutter]
- animated_list_plus 0.5.2 [async flutter meta]
- app_settings 5.2.0 [flutter plugin_platform_interface]
- archive 4.0.7 [crypto path posix]
- audio_service 0.18.18 [audio_service_platform_interface audio_service_web audio_session rxdart flutter_cache_manager clock js flutter flutter_web_plugins]
- audio_session 0.1.25 [flutter flutter_web_plugins rxdart meta]
- audio_waveforms 1.3.0 [flutter]
- audioplayers 6.5.0 [audioplayers_android audioplayers_darwin audioplayers_linux audioplayers_platform_interface audioplayers_web audioplayers_windows file flutter http meta path_provider synchronized uuid]
- basic_utils 5.7.0 [http logging json_annotation pointycastle]
- bloc 8.1.4 [meta]
- browser_image_compression 1.1.2 [js cross_file universal_html flutter flutter_web_plugins plugin_platform_interface]
- camera 0.11.0 [camera_android_camerax camera_avfoundation camera_platform_interface camera_web flutter flutter_plugin_android_lifecycle]
- carousel_slider 5.1.1 [flutter]
- cloud_firestore 5.6.5 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta]
- cloud_functions 5.3.4 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter]
- collection 1.19.1
- connectivity_plus 6.1.4 [flutter flutter_web_plugins connectivity_plus_platform_interface web meta nm collection]
- cross_file 0.3.4+2 [meta web]
- crypto 3.0.6 [typed_data]
- cupertino_icons 1.0.8
- device_info_plus 10.1.2 [device_info_plus_platform_interface ffi file flutter flutter_web_plugins meta web win32 win32_registry]
- device_region 1.4.0 [flutter]
- devicelocale 0.8.1 [flutter flutter_web_plugins web]
- dio 5.9.0 [async collection http_parser meta mime path dio_web_adapter]
- dotted_line 3.2.3 [flutter]
- drift 2.26.1 [async convert collection meta stream_channel sqlite3 path stack_trace web]
- drift_flutter 0.2.5 [drift flutter meta path path_provider sqlite3 sqlite3_flutter_libs]
- easy_debounce 2.0.3
- eciesdart 0.2.0 [hex pointycastle]
- encrypt 5.0.3 [args asn1lib clock collection crypto pointycastle]
- equatable 2.0.7 [collection meta]
- extension_google_sign_in_as_googleapis_auth 3.0.0 [flutter google_sign_in googleapis_auth http meta]
- file_picker 9.2.3 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path win32 cross_file web]
- firebase_analytics 11.4.4 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter]
- firebase_app_check 0.3.1+7 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter]
- firebase_auth 5.5.1 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta]
- firebase_cached_image 0.6.3 [encrypt file firebase_core firebase_storage flutter path path_provider sqflite uuid]
- firebase_core 3.12.1 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 4.3.4 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_database 11.3.4 [firebase_core firebase_core_platform_interface firebase_database_platform_interface firebase_database_web flutter]
- firebase_messaging 15.2.4 [firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web flutter meta]
- firebase_storage 12.4.4 [firebase_core firebase_core_platform_interface firebase_storage_platform_interface firebase_storage_web flutter]
- flextras 1.0.0 [flutter]
- flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine]
- flutter_alice 2.0.1 [flutter http dio overlay_support share_plus rxdart]
- flutter_background_service 5.1.0 [flutter flutter_background_service_platform_interface flutter_background_service_android flutter_background_service_ios]
- flutter_bloc 8.1.6 [bloc flutter provider]
- flutter_cache_manager 3.4.1 [clock collection file flutter http path path_provider rxdart sqflite uuid]
- flutter_context_menu 0.2.4 [flutter]
- flutter_driver 0.0.0 [file flutter flutter_test fuchsia_remote_debug_protocol path meta vm_service webdriver matcher]
- flutter_html 3.0.0-beta.2 [html csslib collection list_counter flutter]
- flutter_image_compress 2.4.0 [flutter flutter_image_compress_platform_interface flutter_image_compress_common flutter_image_compress_web flutter_image_compress_macos flutter_image_compress_ohos]
- flutter_js 0.8.5 [flutter ffi http sync_http]
- flutter_keyboard_visibility 6.0.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_linux flutter_keyboard_visibility_macos flutter_keyboard_visibility_web flutter_keyboard_visibility_windows flutter]
- flutter_local_notifications 19.4.2 [clock flutter flutter_local_notifications_linux flutter_local_notifications_windows flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl path]
- flutter_native_splash 2.4.4 [args flutter flutter_web_plugins html image meta path universal_io xml yaml ansicolor]
- flutter_quill 11.4.2 [flutter flutter_localizations dart_quill_delta collection quiver meta html intl flutter_colorpicker flutter_quill_delta_from_html markdown charcode url_launcher flutter_keyboard_visibility_temp_fork quill_native_bridge]
- flutter_quill_delta_from_html 1.5.0 [dart_quill_delta html]
- flutter_secure_storage 10.0.0-beta.4 [flutter flutter_secure_storage_darwin flutter_secure_storage_linux flutter_secure_storage_platform_interface flutter_secure_storage_web flutter_secure_storage_windows meta] 
- flutter_slidable 4.0.0 [flutter]
- flutter_speed_dial 7.0.0 [flutter]
- flutter_staggered_animations 1.1.1 [flutter]
- flutter_svg 2.2.0 [flutter http vector_graphics vector_graphics_codec vector_graphics_compiler]
- flutter_timezone 3.0.1 [flutter flutter_web_plugins]
- flutter_udid 4.0.0 [flutter crypto]
- flutter_video_info 1.3.3 [flutter path]
- flutter_web_plugins 0.0.0 [flutter]
- formz 0.4.1
- gal 2.3.2 [flutter]
- get_time_ago 2.3.2 [intl]
- go_router 16.0.0 [collection flutter flutter_web_plugins logging meta]
- google_fonts 6.2.1 [flutter http path_provider crypto]
- google_mobile_ads 5.3.1 [meta flutter webview_flutter_android webview_flutter_wkwebview webview_flutter]
- google_sign_in 7.1.1 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web]
- google_sign_in_ios 6.1.0 [flutter google_sign_in_platform_interface]
- googleapis 14.0.0 [_discoveryapis_commons http]
- googleapis_auth 1.6.0 [args crypto google_identity_services_web http http_parser]
- home_widget 0.8.0 [flutter path_provider path_provider_foundation]
- html2md 1.3.2 [html collection]
- html_to_flutter 0.2.3-dev.8 [collection flutter html meta nanoid]
- http 1.4.0 [async http_parser meta web]
- idb_shim 2.6.1+7 [sembast collection path meta web]
- image 4.5.4 [archive meta xml]
- image_picker 1.2.0 [flutter image_picker_android image_picker_for_web image_picker_ios image_picker_linux image_picker_macos image_picker_platform_interface image_picker_windows]
- image_size_getter 2.4.0 [collection hashcodes meta]
- in_app_review 2.0.10 [flutter in_app_review_platform_interface]
- infinite_listview 1.1.0 [flutter]
- intl 0.20.2 [clock meta path]
- isolate_manager 6.1.0 [path stream_channel web]
- jiffy 6.3.2 [intl]
- json_patch 3.0.0 [collection]
- just_audio 0.10.4 [just_audio_platform_interface just_audio_web audio_session rxdart path path_provider async uuid crypto meta flutter synchronized]
- keyboard_attachable 2.2.0 [flutter flutter_keyboard_visibility]
- linkfy_text 1.1.6 [platform flutter]
- live_activities 2.2.0 [flutter plugin_platform_interface flutter_app_group_directory path_provider image]
- loading_animation_widget 1.3.0 [flutter]
- loading_indicator 3.1.1 [flutter async collection]
- local_auth 2.3.0 [flutter local_auth_android local_auth_darwin local_auth_platform_interface local_auth_windows]
- logger 1.4.0
- media_kit 1.2.0 [collection http image meta path safe_local_storage synchronized universal_platform web uri_parser uuid]
- media_kit_libs_ios_video 1.1.4 [flutter plugin_platform_interface]
- media_kit_libs_video 1.0.6 [media_kit_libs_android_video media_kit_libs_ios_video media_kit_libs_macos_video media_kit_libs_windows_video media_kit_libs_linux]
- media_kit_native_event_loop 1.0.9 [flutter]
- media_kit_video 1.3.0 [flutter media_kit synchronized wakelock_plus screen_brightness_android screen_brightness_platform_interface volume_controller universal_platform plugin_platform_interface web]
- mime 1.0.6
- modal_bottom_sheet 3.0.0 [flutter]
- ntp 2.0.0
- open_filex 4.7.0 [flutter ffi]
- open_settings_plus 0.3.3 [flutter plugin_platform_interface]
- package_info_plus 8.3.0 [ffi flutter flutter_web_plugins http meta path package_info_plus_platform_interface web win32 clock]
- path 1.9.1
- path_provider 2.1.5 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows]
- percent_indicator 4.2.5 [flutter]
- permission_handler 12.0.1 [flutter meta permission_handler_android permission_handler_apple permission_handler_html permission_handler_windows permission_handler_platform_interface]
- photo_view 0.15.0 [flutter]
- purchases_flutter 8.10.6 [flutter freezed_annotation json_annotation]
- qr_flutter 4.1.0 [flutter qr]
- record 6.0.0 [flutter uuid record_platform_interface record_web record_windows record_linux record_android record_ios record_macos]
- restart_app 1.3.2 [flutter web plugin_platform_interface flutter_web_plugins]
- rive 0.13.20 [collection flutter flutter_web_plugins http meta plugin_platform_interface rive_common]
- rrule 0.2.17 [collection intl meta time]
- rxdart 0.28.0
- screenshot 3.0.0 [flutter]
- scrollable_positioned_list 0.3.8 [flutter collection]
- share_plus 11.1.0 [cross_file meta mime flutter flutter_web_plugins share_plus_platform_interface file url_launcher_web url_launcher_windows url_launcher_linux url_launcher_platform_interface ffi web win32]     
- 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]       
- shorebird_code_push 2.0.4 [ffi meta]
- sign_in_with_apple 6.1.4 [flutter meta sign_in_with_apple_platform_interface sign_in_with_apple_web]
- sliver_tools 0.2.12 [flutter]
- speech_to_text 7.1.0 [flutter speech_to_text_platform_interface json_annotation clock pedantic flutter_web_plugins meta web]
- sqlite3 2.8.0 [collection ffi meta path web typed_data]
- sqlite3_flutter_libs 0.5.38 [flutter]
- system_info2 4.0.0 [globbing path]
- timeago 3.7.1 [intl]
- timezone 0.10.1 [http path]
- universal_html 2.2.4 [async csslib charcode collection html meta source_span typed_data universal_io]
- universal_io 2.2.2 [collection meta typed_data]
- universal_platform 1.1.0
- 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.1 [crypto sprintf meta fixnum]
- vector_graphics 1.1.19 [flutter http vector_graphics_codec]
- vibration 2.1.0 [flutter vibration_platform_interface]
- video_compress 3.1.4 [flutter]
- video_player 2.10.0 [flutter html video_player_android video_player_avfoundation video_player_platform_interface video_player_web]
- visibility_detector 0.4.0+2 [flutter]
- volume_controller 3.3.2 [flutter]
- vsc_quill_delta_to_html 1.0.5 [html_unescape collection meta]
- webcrypto 0.5.8 [ffi meta flutter_web_plugins flutter]
- webview_flutter 4.13.0 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview]
- webview_flutter_web 0.2.3+4 [flutter flutter_web_plugins web webview_flutter_platform_interface]
- window_manager 0.4.3 [flutter path screen_retriever]
- workmanager 0.9.0+3 [flutter workmanager_platform_interface workmanager_android workmanager_apple]
- xml 6.5.0 [collection meta petitparser]

dev dependencies:
- build_runner 2.7.1 [args async build build_config build_daemon build_runner_core built_collection code_builder crypto dart_style frontend_server_client glob graphs http_multi_server io logging meta mime path pub_semver shelf shelf_web_socket stack_trace stream_transform watcher web_socket_channel yaml]
- flutter_gen 5.11.0 [flutter_gen_core args logging]
- flutter_gen_runner 5.11.0 [flutter_gen_core build collection crypto glob path yaml]
- flutter_launcher_icons 0.14.4 [args checked_yaml cli_util image json_annotation path yaml]
- flutter_lints 2.0.3 [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]
- isolate_manager_generator 0.2.0 [analyzer args isolate_manager path]

dependency overrides:
- firebase_app_check 0.3.1+7 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter]
- firebase_app_check_platform_interface 0.1.0+41 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_app_check_web 0.2.0+3 [_flutterfire_internals firebase_app_check_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins web]
- flutter_colorpicker 1.1.0 [flutter]
- flutter_keyboard_visibility 6.0.0 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_linux flutter_keyboard_visibility_macos flutter_keyboard_visibility_web flutter_keyboard_visibility_windows flutter]
- win32 5.14.0 [ffi]

transitive dependencies:
- _discoveryapis_commons 1.0.7 [http http_parser meta]
- _fe_analyzer_shared 88.0.0 [meta]
- _flutterfire_internals 1.3.53 [collection firebase_core firebase_core_platform_interface flutter meta]
- analyzer 8.1.1 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- ansicolor 2.0.3
- args 2.7.0
- asn1lib 1.6.5
- async 2.11.0 [collection meta]
- audio_service_platform_interface 0.1.3 [flutter plugin_platform_interface meta]
- audio_service_web 0.1.4 [audio_service_platform_interface rxdart web flutter flutter_web_plugins]
- audioplayers_android 5.2.1 [audioplayers_platform_interface flutter]
- audioplayers_darwin 6.3.0 [audioplayers_platform_interface flutter]
- audioplayers_linux 4.2.1 [audioplayers_platform_interface flutter]
- audioplayers_platform_interface 7.1.1 [collection flutter meta plugin_platform_interface]
- audioplayers_web 5.1.1 [audioplayers_platform_interface flutter flutter_web_plugins web]
- audioplayers_windows 4.2.1 [audioplayers_platform_interface flutter]
- boolean_selector 2.1.1 [source_span string_scanner]
- build 3.1.0 [analyzer async build_runner_core convert crypto glob logging package_config path]
- build_config 1.2.0 [checked_yaml json_annotation path pubspec_parse]
- build_daemon 4.0.4 [built_collection built_value crypto http_multi_server logging path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 3.0.3 [analyzer async build build_runner_core collection package_config path pool pub_semver]
- build_runner_core 9.3.1 [analyzer async build build_config build_resolvers build_runner built_collection built_value collection convert crypto glob graphs json_annotation logging meta package_config path pool timing watcher yaml]
- built_collection 5.1.1
- built_value 8.11.0 [built_collection collection fixnum meta]
- camera_android_camerax 0.6.21 [async camera_platform_interface flutter meta stream_transform]
- camera_avfoundation 0.9.20+6 [camera_platform_interface flutter stream_transform]
- camera_platform_interface 2.10.0 [cross_file flutter plugin_platform_interface stream_transform]
- camera_web 0.3.5 [camera_platform_interface flutter flutter_web_plugins stream_transform web]
- characters 1.4.0
- charcode 1.4.0
- checked_yaml 2.0.3 [json_annotation source_span yaml]
- cli_util 0.4.2 [meta path]
- clock 1.1.2
- cloud_firestore_platform_interface 6.6.5 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- cloud_firestore_web 4.4.5 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins]
- cloud_functions_platform_interface 5.6.4 [firebase_core flutter meta plugin_platform_interface]
- cloud_functions_web 4.10.10 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins]
- code_builder 4.10.1 [built_collection built_value collection matcher meta]
- color 3.0.0
- connectivity_plus_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- convert 3.1.2 [typed_data]
- csslib 0.17.3 [source_span]
- dart_quill_delta 10.8.3 [collection diff_match_patch quiver]
- dart_style 3.1.2 [analyzer args collection package_config path pub_semver source_span yaml]
- dartx 1.2.0 [characters collection crypto meta path time]
- dbus 0.7.11 [args ffi meta xml]
- device_info_plus_platform_interface 7.0.2 [flutter meta plugin_platform_interface]
- diff_match_patch 0.4.1
- dio_web_adapter 2.1.1 [dio http_parser meta web]
- fake_async 1.3.3 [clock collection]
- ffi 2.1.4
- file 7.0.0 [meta path]
- file_selector_linux 0.9.3+2 [cross_file file_selector_platform_interface flutter]
- file_selector_macos 0.9.4+3 [cross_file file_selector_platform_interface flutter]
- file_selector_platform_interface 2.6.2 [cross_file flutter http plugin_platform_interface]
- file_selector_windows 0.9.3+4 [cross_file file_selector_platform_interface flutter]
- firebase_analytics_platform_interface 4.3.4 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_analytics_web 0.5.10+10 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins]
- firebase_auth_platform_interface 7.6.1 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_auth_web 5.14.1 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser meta web]
- firebase_core_platform_interface 5.4.2 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.24.0 [firebase_core_platform_interface flutter flutter_web_plugins meta web]
- firebase_crashlytics_platform_interface 3.8.4 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_platform_interface 0.2.6+4 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_database_web 0.2.6+10 [collection firebase_core firebase_core_web firebase_database_platform_interface flutter flutter_web_plugins]
- firebase_messaging_platform_interface 4.6.4 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface]
- firebase_messaging_web 3.10.4 [_flutterfire_internals firebase_core firebase_core_web firebase_messaging_platform_interface flutter flutter_web_plugins meta web]
- firebase_storage_platform_interface 5.2.4 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface]
- firebase_storage_web 3.10.11 [_flutterfire_internals async firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http meta web]
- fixnum 1.1.1
- flutter_app_group_directory 1.1.0 [flutter plugin_platform_interface]
- flutter_background_service_android 6.3.1 [flutter flutter_background_service_platform_interface]
- flutter_background_service_ios 5.0.3 [flutter flutter_background_service_platform_interface]
- flutter_background_service_platform_interface 5.1.2 [flutter platform plugin_platform_interface]
- flutter_gen_core 5.11.0 [meta path yaml mime xml dartx color collection json_annotation glob logging dart_style archive args pub_semver vector_graphics_compiler image_size_getter image]
- flutter_image_compress_common 1.0.6 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_macos 1.0.3 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_ohos 0.0.3 [flutter flutter_image_compress_platform_interface]
- flutter_image_compress_platform_interface 1.0.5 [flutter plugin_platform_interface cross_file]
- flutter_image_compress_web 0.1.5 [flutter flutter_web_plugins flutter_image_compress_platform_interface web]
- flutter_keyboard_visibility_linux 1.0.0 [flutter_keyboard_visibility_platform_interface flutter]
- flutter_keyboard_visibility_macos 1.0.0 [flutter_keyboard_visibility_platform_interface flutter]
- flutter_keyboard_visibility_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- flutter_keyboard_visibility_temp_fork 0.1.5 [meta flutter_keyboard_visibility_platform_interface flutter_keyboard_visibility_linux flutter_keyboard_visibility_macos flutter_keyboard_visibility_windows flutter web flutter_web_plugins]
- flutter_keyboard_visibility_web 2.0.0 [flutter_keyboard_visibility_platform_interface flutter_web_plugins flutter]
- flutter_keyboard_visibility_windows 1.0.0 [flutter_keyboard_visibility_platform_interface flutter]
- flutter_local_notifications_linux 6.0.0 [dbus ffi flutter flutter_local_notifications_platform_interface path xdg_directories]
- flutter_local_notifications_platform_interface 9.1.0 [plugin_platform_interface]
- flutter_local_notifications_windows 1.0.3 [flutter ffi flutter_local_notifications_platform_interface meta timezone xml]
- flutter_plugin_android_lifecycle 2.0.28 [flutter]
- flutter_secure_storage_darwin 0.1.0 [flutter plugin_platform_interface]
- flutter_secure_storage_linux 2.0.1 [flutter flutter_secure_storage_platform_interface]
- flutter_secure_storage_platform_interface 2.0.1 [flutter plugin_platform_interface]
- flutter_secure_storage_web 2.0.0 [flutter flutter_secure_storage_platform_interface flutter_web_plugins web]
- flutter_secure_storage_windows 4.0.0 [ffi flutter flutter_secure_storage_platform_interface path path_provider win32]
- freezed_annotation 2.4.4 [collection json_annotation meta]
- frontend_server_client 4.0.0 [async path]
- fuchsia_remote_debug_protocol 0.0.0 [process vm_service meta]
- glob 2.1.3 [async collection file path string_scanner]
- globbing 1.0.0 [path]
- google_identity_services_web 0.3.3+1 [meta web]
- google_sign_in_android 7.0.3 [flutter google_sign_in_platform_interface]
- google_sign_in_platform_interface 3.0.0 [flutter plugin_platform_interface]
- google_sign_in_web 1.0.0 [flutter flutter_web_plugins google_identity_services_web google_sign_in_platform_interface http web]
- graphs 2.3.2 [collection]
- hashcodes 2.0.0
- hex 0.2.0
- html 0.15.4 [csslib source_span]
- html_unescape 2.0.0
- http_multi_server 3.2.2 [async]
- http_parser 4.1.2 [collection source_span string_scanner typed_data]
- image_picker_android 0.8.13+3 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- image_picker_for_web 3.1.0 [flutter flutter_web_plugins image_picker_platform_interface mime web]
- image_picker_ios 0.8.13 [flutter image_picker_platform_interface]
- image_picker_linux 0.2.2 [file_selector_linux file_selector_platform_interface flutter image_picker_platform_interface]
- image_picker_macos 0.2.2 [file_selector_macos file_selector_platform_interface flutter image_picker_platform_interface]
- image_picker_platform_interface 2.11.0 [cross_file flutter http plugin_platform_interface]
- image_picker_windows 0.2.2 [file_selector_platform_interface file_selector_windows flutter image_picker_platform_interface]
- in_app_review_platform_interface 2.0.5 [flutter url_launcher plugin_platform_interface platform]
- io 1.0.5 [meta path string_scanner]
- js 0.6.7 [meta]
- json_annotation 4.9.0 [meta]
- just_audio_platform_interface 4.5.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 2.1.1
- list_counter 1.0.2
- local_auth_android 1.0.50 [flutter flutter_plugin_android_lifecycle intl local_auth_platform_interface]
- local_auth_darwin 1.5.0 [flutter intl local_auth_platform_interface]
- local_auth_platform_interface 1.0.10 [flutter plugin_platform_interface]
- local_auth_windows 1.0.11 [flutter local_auth_platform_interface]
- 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]
- media_kit_libs_android_video 1.3.7 [flutter plugin_platform_interface]
- media_kit_libs_linux 1.2.1 [flutter]
- media_kit_libs_macos_video 1.1.4 [flutter plugin_platform_interface]
- media_kit_libs_windows_video 1.0.11 [flutter]
- meta 1.16.0
- nanoid 1.0.0
- nested 1.0.0 [flutter]
- nm 0.5.0 [dbus]
- overlay_support 2.1.0 [flutter async]
- package_config 2.2.0 [path]
- package_info_plus_platform_interface 3.2.0 [flutter meta plugin_platform_interface]
- path_parsing 1.1.0 [meta vector_math]
- path_provider_android 2.2.17 [flutter path_provider_platform_interface]
- path_provider_foundation 2.4.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]
- pedantic 1.11.1
- permission_handler_android 13.0.1 [flutter permission_handler_platform_interface]
- permission_handler_apple 9.4.7 [flutter permission_handler_platform_interface]
- permission_handler_html 0.1.3+5 [flutter flutter_web_plugins permission_handler_platform_interface web]
- permission_handler_platform_interface 4.3.0 [flutter meta plugin_platform_interface]
- permission_handler_windows 0.2.1 [flutter permission_handler_platform_interface]
- petitparser 6.0.2 [meta]
- platform 3.1.5
- plugin_platform_interface 2.1.8 [meta]
- pointycastle 3.9.1 [collection convert js]
- pool 1.5.1 [async stack_trace]
- posix 6.0.3 [ffi meta path]
- process 5.0.2 [file path platform]
- provider 6.1.5 [collection flutter nested]
- pub_semver 2.2.0 [collection]
- pubspec_parse 1.5.0 [checked_yaml collection json_annotation pub_semver yaml]
- qr 3.0.2 [meta]
- quill_native_bridge 11.1.0 [flutter quill_native_bridge_android quill_native_bridge_platform_interface quill_native_bridge_web quill_native_bridge_windows quill_native_bridge_ios quill_native_bridge_macos]      
- quill_native_bridge_android 0.0.1+2 [flutter quill_native_bridge_platform_interface]
- quill_native_bridge_ios 0.0.1 [flutter quill_native_bridge_platform_interface]
- quill_native_bridge_macos 0.0.1 [flutter quill_native_bridge_platform_interface]
- quill_native_bridge_platform_interface 0.0.2+1 [flutter plugin_platform_interface]
- quill_native_bridge_web 0.0.2 [flutter flutter_web_plugins web quill_native_bridge_platform_interface]
- quill_native_bridge_windows 0.0.2 [flutter quill_native_bridge_platform_interface win32 ffi file_selector_windows file_selector_platform_interface]
- quiver 3.2.2 [matcher]
- record_android 1.3.3 [flutter record_platform_interface]
- record_ios 1.0.0 [flutter record_platform_interface]
- record_linux 1.1.1 [flutter record_platform_interface]
- record_macos 1.0.0 [flutter record_platform_interface]
- record_platform_interface 1.3.0 [flutter plugin_platform_interface]
- record_web 1.1.9 [flutter flutter_web_plugins web record_platform_interface]
- record_windows 1.0.6 [flutter record_platform_interface]
- rive_common 0.4.15 [collection ffi flutter flutter_web_plugins graphs http meta plugin_platform_interface web]
- safe_local_storage 2.0.1 [path synchronized]
- screen_brightness_android 2.1.3 [flutter screen_brightness_platform_interface]
- screen_brightness_platform_interface 2.1.0 [flutter plugin_platform_interface]
- screen_retriever 0.2.0 [flutter screen_retriever_linux screen_retriever_macos screen_retriever_platform_interface screen_retriever_windows]
- screen_retriever_linux 0.2.0 [flutter screen_retriever_platform_interface]
- screen_retriever_macos 0.2.0 [flutter screen_retriever_platform_interface]
- screen_retriever_platform_interface 0.2.0 [flutter json_annotation plugin_platform_interface]
- screen_retriever_windows 0.2.0 [flutter screen_retriever_platform_interface]
- sembast 3.8.3 [meta path synchronized]
- share_plus_platform_interface 6.1.0 [cross_file flutter meta mime plugin_platform_interface path_provider uuid]
- shared_preferences_android 2.4.10 [flutter shared_preferences_platform_interface]
- shared_preferences_foundation 2.5.4 [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]
- sign_in_with_apple_platform_interface 1.1.0 [flutter plugin_platform_interface meta]
- sign_in_with_apple_web 2.1.1 [flutter flutter_web_plugins sign_in_with_apple_platform_interface]
- sky_engine 0.0.0
- source_span 1.10.0 [collection path term_glyph]
- speech_to_text_platform_interface 2.3.0 [flutter meta plugin_platform_interface]
- sprintf 7.0.0
- sqflite 2.4.1 [flutter sqflite_android sqflite_darwin sqflite_platform_interface sqflite_common path]
- sqflite_android 2.4.0 [flutter sqflite_common path sqflite_platform_interface]
- sqflite_common 2.5.4+6 [synchronized path meta]
- sqflite_darwin 2.4.1+1 [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.3.0 [source_span]
- sync_http 0.3.1
- synchronized 3.3.0+3
- term_glyph 1.2.1
- test_api 0.7.6 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph]
- time 2.1.5 [clock]
- timing 1.0.2 [json_annotation]
- typed_data 1.4.0 [collection]
- uri_parser 3.0.0 [path safe_local_storage]
- url_launcher_android 6.3.16 [flutter url_launcher_platform_interface]
- url_launcher_ios 6.3.3 [flutter url_launcher_platform_interface]
- url_launcher_linux 3.2.1 [flutter url_launcher_platform_interface]
- url_launcher_macos 3.2.2 [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.4 [flutter url_launcher_platform_interface]
- vector_graphics_codec 1.1.13
- vector_graphics_compiler 1.1.17 [args meta path path_parsing vector_graphics_codec xml]
- vector_math 2.2.0
- vibration_platform_interface 0.0.3 [flutter plugin_platform_interface device_info_plus]
- video_player_android 2.8.13 [flutter video_player_platform_interface]
- video_player_avfoundation 2.8.4 [flutter video_player_platform_interface]
- video_player_platform_interface 6.4.0 [flutter plugin_platform_interface]
- video_player_web 2.4.0 [flutter flutter_web_plugins video_player_platform_interface web]
- vm_service 14.3.0
- wakelock_plus 1.3.2 [flutter flutter_web_plugins meta wakelock_plus_platform_interface win32 dbus package_info_plus web]
- wakelock_plus_platform_interface 1.2.3 [flutter plugin_platform_interface meta]
- watcher 1.1.2 [async path]
- web 1.1.1
- web_socket 1.0.1 [web]
- web_socket_channel 3.0.3 [async crypto stream_channel web web_socket]
- webdriver 3.0.4 [matcher path stack_trace sync_http]
- webview_flutter_android 4.8.2 [flutter meta webview_flutter_platform_interface]
- webview_flutter_platform_interface 2.13.1 [flutter meta plugin_platform_interface]
- webview_flutter_wkwebview 3.22.1 [flutter meta path webview_flutter_platform_interface]
- win32_registry 1.1.5 [ffi win32]
- workmanager_android 0.9.0+2 [flutter workmanager_platform_interface]
- workmanager_apple 0.9.1+2 [flutter workmanager_platform_interface]
- workmanager_platform_interface 0.9.1+1 [flutter meta plugin_platform_interface]
- xdg_directories 1.1.0 [meta path]
- yaml 3.1.3 [collection source_span string_scanner]

Additional context and comments

  1. Other platforms worked without crash.
  2. Fix which worked for me: Updated cloud_firestore/windows/cloud_firestore_plugin.cpp:
  void CloudFirestorePlugin::Terminate(
      const FirestorePigeonFirebaseApp& app,
      std::function<void(std::optional<FlutterError> reply)> result) {
    std::string cacheKey = app.app_name() + "-" + app.database_u_r_l();  // ADD THIS

    Firestore* firestore = GetFirestoreFromPigeon(app);
    firestore->Terminate().OnCompletion(
        [result, cacheKey](const Future<void>& completed_future) {  // ADD cacheKey CAPTURE
          if (completed_future.error() == firebase::firestore::kErrorOk) {
            CloudFirestorePlugin::firestoreInstances_.erase(cacheKey);  // ADD THIS
            result(std::nullopt);
          } else {
            result(CloudFirestorePlugin::ParseError(completed_future));
            return;
          }
        });
  }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions