0

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.

Shehab.27
  • 1
  • 2

0 Answers0