FirebaseExtended / flutterfire_desktop

An early-stage, experimental pure-Dart implementation of Firebase SDKs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FlutterFire Desktop Roadmap 2022

pr-Mais opened this issue Β· comments

Hello everyone! πŸ‘‹

We heard you're excited about the FlutterFire Desktop support!
Therefore, we're sharing a tentative roadmap for our plan in 2022 to continue developing FlutterFire on Desktop platforms. 🚧

The Desktop packages for FlutterFire are built over the REST APIs of Firebase using Dart, and it adds support by extending the original FlutterFire platform interface for Windows, Linux, and macOS. The goal is to enable smooth support without much effort needed from developers.

Our implementation for each package is split into 2 packages:

  1. The Dart package, implementing an API similar to FlutterFire without dependency on Flutter, can be used alone to build Dart apps.
  2. The Desktop package that uses the Dart package and implements all methods in the original package's platform interface.

Roadmap for FlutterFire Desktop in 2022

These plugins are stable:

  1. 🟒 Core
    Status: stable
  2. 🟒 Authentication
    Status: stable

These plugins are currently in-progress:

  1. 🟠 Cloud Functions
    Status: beta
  2. 🟑 Remote Config
    Status: in progress
  3. 🟑 Cloud Storage
    Status: in progress

These plugins are planned once all preview plugins are shipped:

  1. πŸ”΄ Installations
    Status: not started
  2. πŸ”΄ Analytics
    Status: not started

This issue will be updated regularly to reflect the current state and any future plans.


Announcements ✨

  1. Announcing stable FlutterFire Auth for Desktop
  2. Announcing FlutterFire for Desktop (Preview)

Thank you! I am not sure how others would prioritise the plugins but for us certainly the firestore plugin would be the most important. We can easily live withouth remote config or analytics but without a database our app is quite useless. Please consider to give it more priority.

The reason we didn’t include Firestore or Realtime Database is that Core & Auth are still in preview. They both are essential to most other packages. We’re not sure how much they’re ready until we try them with other packages. Therefore, we decided to implement smaller ones such as Remote Config and Analytics. This will help us get Core & Auth into stable before starting with Firestore.

commented

I'd love to see Firestore capabilities (even in alpha stage, just for simple queries)

I really really really need authentication works in windows, android and ios. Currently not works on windows ( see #49 #65 #68 )

Really waiting for it.

Will firebase messaging be possible for desktop?

Hi team, from what I can tell, the auth redirect is using localhost with http (unencrypted), meaning the refresh token is unencrypted on the local network. My understanding is that this is a deficiency in auth code flow which is accounted for in android and ios by using a special backend.
Is it your understanding that this is the case? Local network traffic could be sniffed for the refresh token?
If so, historically I've used a cloud function with Firestore to securely return this result, is there possibility for a hardened solution on this front?

really hope realtime database and cloud firestore to be released soon :'(

cloud Desktop

hope for cloud firestore with offline mode

2. πŸ”΄ Analytics

I'm quite interested in the Analytics functionality. Out of curiosity, do you know of any API documentation? The only one I found was the measurement protocol https://developers.google.com/analytics/devguides/collection/protocol/ga4 which is explicitly "not to replace" the native libraries but to "augment" them.

In particular it requires a `app_instance_id` which can only be retrieved by the official SDKs.

https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=firebase#required_parameters

Screen Shot 2022-06-26 at 12 20 21
commented

Are there any estimated dates regarding the roadmap?

I can't wait for this to see a working Firestore and Remote Config soon

Any plan for Firebase Database ?

The work on RC is in-progress, but there's no plan, at least in the meantime, for Firestore or Database. This could change anytime in the near future.

  1. πŸ”΄ Analytics

I'm quite interested in the Analytics functionality. Out of curiosity, do you know of any API documentation? The only one I found was the measurement protocol developers.google.com/analytics/devguides/collection/protocol/ga4 which is explicitly "not to replace" the native libraries but to "augment" them.

In particular it requires a app_instance_id which can only be retrieved by the official SDKs.
developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=firebase#required_parameters

Screen Shot 2022-06-26 at 12 20 21

I haven't yet looked deeper into Analytics, but we're going to use the Discovery API (see here) as with most of the plugins, this means we're trying to mimic the official SDKs (particularly the JS SDK). Regarding the app_instance_id, this can be retrieved using FirebaseInstallations API, which is why Analytics is on-hold until Installations is implemented, there's a current PR for installations.

@pr-Mais Thanks for the update! Judging from the git commits it looked as if the project was abandoned. Apart from some small changes there hasen't been any progress in a long time. Can you share some insights why this might change in the near future?

Please don't get me wrong, I am very happy that you work on this and most likely there are just so many other things to do and only a limited amount of hours in the day. So how can we support you to get more resources for this project? Would it help to write to the Firebase support team? We already make sure to mention this project in every Flutter survey in the hope that Google might one day see the value of supporting Firebase on desktop and maybe sponsor some development.

@cbenhagen oh no it's not abandoned! as you said, there is so much on our plate, but this project will definitely keep moving forward!

For how can anyone help, we warmly welcome contributors!
As an inspiration @TimWhiting has already contributed by working on a whole package, thanks to him we have Firebase Functions currently in beta.

Thank you for your work so far. I just wonder why this package is not done but the Flutter/Firebase Team itself?

I've been using the firebase_dart package https://pub.dev/packages/firebase_dart until flutterfire_desktop supports a database.

hi, i need to use firestore on windows/linux, is there already any plan to add it to the roadmap?

And while they implement it is there any way to connect to firestore? I use https://pub.dev/packages/firebase_dart but it only supports realtime database.

just use the api, i'm not sure on firestore but I use for example the realtime database api directly for my windows app.
I know a package would be better and cleaner but for now It gets the thing done.

I'm more interested in FirebaseInstallations and Analytics because there is no working alternative i've found for those atm

Is this project abandoned?

read the comment on 12 Jul, so I don't think so but the development is going slow sadly

Any updates on this topic?

There hasn't been any progress on this project for more than 6 months already.

@pr-Mais May I suggest to team up with @rbellens who is the author of firebase_dart? He recently mentioned to be looking for funding so he can work more on his project. Maybe the two projects could be merged? I am sure funding could be organized with some help of Google, Invertase, Canonical or others!

I tried this today but was unable to add auth due to a dependency mismatch.

Because firebase_auth_desktop <0.1.1-dev.1 depends on firebase_core ^1.8.0 and firebase_auth_desktop >=0.1.1-dev.1 <0.1.1-dev.4 depends on firebase_core ^1.10.0, firebase_auth_desktop <0.1.1-dev.4 requires firebase_core ^1.8.0.
And because firebase_auth_desktop >=0.1.1-dev.4 <1.0.1 depends on firebase_core ^1.12.0, firebase_auth_desktop <1.0.1 requires firebase_core ^1.8.0.
And because firebase_auth_desktop >=1.0.1 <1.0.2 depends on firebase_core ^1.19.1 and firebase_auth_desktop >=1.0.2 depends on firebase_core ^1.20.0, every version of firebase_auth_desktop requires firebase_core ^1.8.0.
So, because MY-APP depends on both firebase_core ^2.3.0 and firebase_auth_desktop any, version solving failed.

Does this mean I must downgrade firebase_core to 1.20.0 ?

@pr-Mais did you see my comment?

Maybe @Ehesp or @Salakar could share some insight?

I could probably quite easily create some federated packages for the realtime database and cloud storage (and auth), but as I will not use it for my own projects (I use firebase_dart for backend and flutter, android, ios, web, desktop), I will not do it without some funding.

Hi everyone πŸ‘‹ I'm excited to share that I'm working on adding support for firebase_storage to the flutterfire_destkop package family! It will support dart-only (CLI or server), Windows, and Linux apps. Some functionality might be unavailable due to dart's HTTP layer limitations.

We need:
Remote Config and Analytics,
is it possible to say how much time it will take?

We really need firestore support for windows, any idea when this will be available? It seems it don't even started, but not sure.

commented

firebase_auth_desktop has version conflict with flutter version with some current firebase packages. I've downgraded the other packages and still get many errors.

If anyone really needs firestore on desktop I recommend implementing it in C# as it supports it. I had a flutter desktop app that needed firestore so I implemented the firestore on c#, then set it a service so that its always on and auto starts when computer turns on, then linked everything to my app.

@Ehesp as previosly mentioned, development of this package has been so slow due to the lack of funding. Samsung puts a lot of effort in their flutter-tizen project. Maybe they could be convinced to sponsor some of this work? Invertase could offer help here: flutter-tizen/flutter-tizen#353

@marb2000 / @puf do you have any news on the plans Google has for officially supporting Firebase on other Desktop platforms than macOS? Already partial support for the most important plugins like Firestore / Realtime Database would help a lot.

How about the firebase crashlytics in windows?

Good to see that Firebase is doing full dart version for Linux and Windows.
Hopefully in future all platforms could be included with on dependency.
Amplify has just finished full rewrite from native sdk wrappers to dart supporting all platforms: https://pub.dev/packages/amplify_flutter/changelog#:~:text=full%20rewrite%20of%20the%20Amplify%20libraries%20in%20Dart

@everyone please show your support for Flutter / Firebase on Desktop by upvoting this idea. Thanks!

I have a question for the devs: is there a technical reason that the pure Dart implementations are separated from the desktop plugins? Wouldn't the pure Dart versions run on all platforms? Is speed and performance a limitation? Because if the team is looking to free up some bandwidth, focusing on just one version of all the packages could help.

Has this project been abandoned? Will we still not be able to use firestore on windows in 2025?

Has this project been abandoned? Will we still not be able to use firestore on windows in 2025?

Ask for feature request in below link.
https://firebase.google.com/support/troubleshooter/report/features

And support this idea.
https://firebase.uservoice.com/forums/948424-general/suggestions/46591750-desktop-windows-linux-macos-support-for-flutte