I am building a no-code app using flutterflow (V3.1 - flutter version 3.10.4) and firebase, but when I tried to download the code to continue developing on VSCode, the app was fully functional on android and web, but didn't build at first for windows. However, after adding firebase_core_desktop: ^1.0.2, firebase_auth_desktop: ^1.0.2, configuring my firebase project to support windows using firebase CLI's Configure, and using firebase_options as mu options in main.dart when initializing firebase app. the windows version worked, and authentication worked. yet, firestore isn't working for some reasons. I would like to re-state that the app is fully working on web and android. but on windows, it gives me the following error!
Full Terminal LOGS when i run the app in debug mode:
Launching lib\main.dart on Windows in debug mode...Building Windows application... 12.4s√ Built build\windows\runner\Debug\control_station.exe.[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'Null' is not a subtype of type 'String'#0 User._idToken (package:firebase_auth_dart/src/user.dart:18:31)#1 User._decodedIdToken (package:firebase_auth_dart/src/user.dart:20:66)#2 User._refreshIdToken (package:firebase_auth_dart/src/user.dart:180:26)#3 User.getIdToken (package:firebase_auth_dart/src/user.dart:161:11)#4 User.getIdToken (package:firebase_auth_desktop/src/firebase_auth_user.dart:39:18)#5 User.getIdToken (package:firebase_auth/src/user.dart:120:22)#6 jwtTokenStream.<anonymous closure> (package:control_station/auth/firebase_auth/auth_util.dart:43:57)#7 _MapStream._handleData (dart:async/stream_pipe.dart:213:31)#8 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:153:13)#9 _RootZone.runUnaryGuarded (dart:async/zone.dart:1594:10)#10 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)#11 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)#12 _SyncBroadcastStreamController._sendData (dart:async/broadcast_stream_controller.dart:377:25)#13 _BroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:244:5)#14 _AsBroadcastStreamController.add (dart:async/broadcast_stream_controller.dart:474:11)#15 _RootZone.runUnaryGuarded (dart:async/zone.dart:1594:10)#16 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)#17 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)#18 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:123:11)#19 _MapStream._handleData (dart:async/stream_pipe.dart:218:10)#20 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:153:13)#21 _RootZone.runUnaryGuarded (dart:async/zone.dart:1594:10)#22 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11)#23 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:271:7)#24 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:776:19)#25 _StreamController._add (dart:async/stream_controller.dart:650:7)#26 _StreamController.add (dart:async/stream_controller.dart:598:5)#27 _AsyncStarStreamController.add (dart:async-patch/async_patch.dart:76:16)#28 FirebaseAuthDesktop.idTokenChanges (package:firebase_auth_desktop/firebase_auth_desktop.dart)<asynchronous suspension>
```
```
Syncing files to device Windows... 415ms
```
```
Flutter run key commands.r Hot reload.R Hot restart.h List all available interactive commands.d Detach (terminate "flutter run" but leave application running).c Clear the screenq Quit (terminate the application on the device).
```
```
A Dart VM Service on Windows is available at: http://127.0.0.1:59036/71Ncwgal210=/[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method DocumentReference#snapshots on channel plugins.flutter.io/firebase_firestore)#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)<asynchronous suspension>#1 MethodChannelDocumentReference.snapshots.<anonymous closure> (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:113:28)<asynchronous suspension>
```
```
The Flutter DevTools debugger and profiler on Windows is available at: http://127.0.0.1:9101?uri=http://127.0.0.1:59036/71Ncwgal210=/
```
```
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════The following _TypeError was thrown building StreamBuilder<UsersRecord?>(dirty, state:_StreamBuilderBaseState<UsersRecord?, AsyncSnapshot<UsersRecord?>>#19fe8):Null check operator used on a null value
```
```
The relevant error-causing widget was:StreamBuilder<UsersRecord?>StreamBuilder:file:///C:/Users/sheha/Desktop/control_station/lib/auth/firebase_auth/auth_util.dart:69:41
```
```
When the exception was thrown, this was the stack:#0 _DashboardWidgetState.build.<anonymous closure> (package:control_station/user/dashboard/dashboard_widget.dart:572:46)#1 AuthUserStreamWidget.build.<anonymous closure> (package:control_station/auth/firebase_auth/auth_util.dart:71:41)#2 StreamBuilder.build (package:flutter/src/widgets/async.dart:439:81)#3 _StreamBuilderBaseState.build (package:flutter/src/widgets/async.dart:120:48)#4 StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27)#5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15)#6 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)#7 Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)#8 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5068:5)#9 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5242:11)#10 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5062:5)... Normal element mounting (7 frames)#17 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16)#18 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36)#19 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32)... Normal element mounting (40 frames)#59 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16)#60 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6570:36)#61 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6582:32)... Normal element mounting (157 frames)#218 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3971:16)#219 Element.updateChild (package:flutter/src/widgets/framework.dart:3708:18)#220 _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)#221 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2720:19)#222 _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)#223 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2506:59)#224 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1062:15)#225 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2506:14)#226 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:228:7)#227 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:313:5)#228 RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)#229 RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)#230 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)#231 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1056:7)#232 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:235:7)#233 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)#234 RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)#235 RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)#236 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)#237 RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)#238 RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)#239 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)#240 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1449:11)#241 RenderObject.layout (package:flutter/src/rendering/object.dart:2395:7)#242 RenderBox.layout (package:flutter/src/rendering/box.dart:2386:11)#243 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:122:14)#244 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2234:7)#245 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1016:18)#246 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:492:19)#247 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:905:13)#248 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)#249 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1284:15)#250 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1214:9)#251 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1072:5)#252 _invoke (dart:ui/hooks.dart:142:13)#253 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:359:5)#254 _drawFrame (dart:ui/hooks.dart:112:31)
```
```
════════════════════════════════════════════════════════════════════════════════════════════════════
```
```
Another exception was thrown: Null check operator used on a null valueAnother exception was thrown: Null check operator used on a null value[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method Query#snapshots on channel plugins.flutter.io/firebase_firestore)#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)<asynchronous suspension>#1 MethodChannelQuery.snapshots.<anonymous closure> (package:cloud_firestore_platform_interface/src/method_channel/method_channel_query.dart:150:28)<asynchronous suspension>
```
```
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: MissingPluginException(No implementation found for method Query#snapshots on channel plugins.flutter.io/firebase_firestore)#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:332:7)<asynchronous suspension>#1 MethodChannelQuery.snapshots.<anonymous closure> (package:cloud_firestore_platform_interface/src/method_channel/method_channel_query.dart:150:28)<asynchronous suspension>
```
I tried to further investigate on flutterflow, their applications seem to natively work on windows without any additional code, but the problem seems to be the link with firestore on windows, cloud_firestore doesn't support windows. so i tried some old pub.dev libraries such as firebase_for_all but couldn't make it work. tried flutter clean and rebuild but to no avail. thus, is there anyone who managed to deploy flutterflow application with firebase successfully on windows without any problems with just little programming? or will I be forced to re-shape the application backend to create such a cross-platform application?
below is my pubspec dependancies and flutter doctor results:
environment:
sdk: ">=3.0.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
auto_size_text: 3.0.0
cached_network_image: 3.2.1
cloud_firestore: 4.8.0
cloud_firestore_platform_interface: 5.15.0
cloud_firestore_web: 3.6.0
dropdown_button2: 2.0.0
easy_debounce: 2.0.1
file_picker: 5.2.6
firebase_auth: 4.6.2
firebase_auth_desktop: ^1.0.2
firebase_auth_platform_interface: 6.15.2
firebase_auth_web: 5.5.2
firebase_core: 2.13.1
firebase_core_desktop: ^1.0.2
firebase_core_platform_interface: 4.8.0
firebase_core_web: 2.5.0
firebase_storage: 11.2.2
firebase_storage_platform_interface: 4.4.2
firebase_storage_web: 3.6.2
floating_bottom_navigation_bar: 1.5.2
flutter_animate: 4.1.1+1
flutter_cache_manager: 3.3.0
flutter_plugin_android_lifecycle: 2.0.9
font_awesome_flutter: 10.1.0
from_css_color: 2.0.0
go_router: 7.1.1
google_fonts: 4.0.3
google_sign_in: 6.0.2
google_sign_in_android: 6.1.8
google_sign_in_ios: 5.6.1
google_sign_in_platform_interface: 2.4.0
google_sign_in_web: 0.11.0+2
image_picker: 0.8.5+3
image_picker_android: 0.8.5+3
image_picker_for_web: 2.1.10
image_picker_ios: 0.8.6+1
image_picker_platform_interface: 2.6.2
intl: 0.18.0
json_path: 0.4.1
mime_type: 1.0.0
page_transition: 2.0.4
path_provider: 2.0.14
path_provider_android: 2.0.25
path_provider_foundation: 2.2.2
path_provider_platform_interface: 2.0.6
pdf: ^3.10.4
photo_view: 0.14.0
plugin_platform_interface: 2.1.3
printing: ^5.11.0
provider: 6.0.4
rxdart: 0.27.7
shared_preferences: 2.0.15
shared_preferences_android: 2.1.0
shared_preferences_ios: 2.1.1
shared_preferences_platform_interface: 2.2.0
shared_preferences_web: 2.1.0
sign_in_with_apple: 4.3.0
sign_in_with_apple_platform_interface: 1.0.0
sign_in_with_apple_web: 1.0.1
sqflite: 2.2.6
stream_transform: 2.1.0
text_search: 0.0.2
timeago: 3.2.2
url_launcher: 6.1.10
url_launcher_android: 6.0.27
url_launcher_ios: 6.1.4
url_launcher_platform_interface: 2.1.2
video_player: 2.6.0
video_player_android: 2.4.3
video_player_avfoundation: 2.4.2
video_player_platform_interface: 6.1.0
video_player_web: 2.0.15
cupertino_icons: ^1.0.0
dev_dependencies:
flutter_launcher_icons: 0.12.0
```
```
dependency_overrides:
firebase_core: 2.13.1
firebase_auth: 4.6.2
```
```
flutter_test:
sdk: flutter
```
```
flutter_icons:
android: true
ios: true
remove_alpha_ios: true
image_path: 'assets/images/app_launcher_icon.png'
flutter:
uses-material-design: true
assets:
- assets/fonts/
- assets/images/
- assets/videos/
- assets/audios/
- assets/lottie_animations/
- assets/rive_animations/
- assets/pdfs/
Flutter Doctor results:
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.10.5, on Microsoft Windows [Version 10.0.22621.1928], locale en-US)
[√] Windows Version (Installed version of Windows is version 10 or higher)
[√] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.6.4)
[√] Android Studio (version 2020.3)
[√] VS Code (version 1.79.2)
[√] Connected device (2 available)
[√] Network resources
I have the latest VSCode with the latest Flutter and Dart Plugins. don't mind chrome error, I don't really need it.