flutterfire_desktop icon indicating copy to clipboard operation
flutterfire_desktop copied to clipboard

FlutterFire Desktop Roadmap 2022

Open pr-Mais opened this issue 2 years ago β€’ 42 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)

pr-Mais avatar Mar 08 '22 12:03 pr-Mais

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.

cbenhagen avatar Mar 11 '22 09:03 cbenhagen

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.

pr-Mais avatar Mar 17 '22 12:03 pr-Mais

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

eximius313 avatar Mar 21 '22 21:03 eximius313

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.

filipenanclarez avatar Apr 24 '22 23:04 filipenanclarez

Will firebase messaging be possible for desktop?

Mufaddal1125 avatar May 17 '22 12:05 Mufaddal1125

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?

MousyBusiness avatar Jun 02 '22 22:06 MousyBusiness

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

hwkim1127 avatar Jun 08 '22 15:06 hwkim1127

cloud Desktop

ghost avatar Jun 11 '22 05:06 ghost

hope for cloud firestore with offline mode

eldarkk avatar Jun 19 '22 16:06 eldarkk

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

hpoul avatar Jun 26 '22 10:06 hpoul

Are there any estimated dates regarding the roadmap?

eximius313 avatar Jun 26 '22 12:06 eximius313

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

oliverbytes avatar Jun 29 '22 08:06 oliverbytes

Any plan for Firebase Database ?

rohitsangwan01 avatar Jun 30 '22 08:06 rohitsangwan01

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.

pr-Mais avatar Jul 12 '22 08:07 pr-Mais

  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 avatar Jul 12 '22 08:07 pr-Mais

@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 avatar Jul 12 '22 08:07 cbenhagen

@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.

pr-Mais avatar Jul 12 '22 09:07 pr-Mais

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

Epikur86 avatar Jul 20 '22 11:07 Epikur86

Is there a dirty unofficial way to get firestore just working in desktop for now? I wish i could contribute, just wondering is creating this simply all about converting the firebase-firestore code to dart? Or there's other stuff involved. Its sad firestore is not even in the roadmap at all i had thought you were only waiting for auth to go into stable

Scylla2020 avatar Jul 31 '22 09:07 Scylla2020

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

TimWhiting avatar Jul 31 '22 19:07 TimWhiting

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.

MiniSuperDev avatar Oct 10 '22 14:10 MiniSuperDev

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

nickcuypers avatar Oct 21 '22 21:10 nickcuypers

Is this project abandoned?

WH-Creations avatar Oct 26 '22 04:10 WH-Creations

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

nickcuypers avatar Oct 26 '22 10:10 nickcuypers

Any updates on this topic?

wiedymi avatar Oct 30 '22 14:10 wiedymi

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!

cbenhagen avatar Nov 02 '22 21:11 cbenhagen

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 ?

syeds-git avatar Dec 02 '22 23:12 syeds-git

@pr-Mais did you see my comment?

cbenhagen avatar Dec 06 '22 12:12 cbenhagen

Maybe @Ehesp or @Salakar could share some insight?

cbenhagen avatar Dec 27 '22 19:12 cbenhagen

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.

rbellens avatar Jan 02 '23 10:01 rbellens

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.

lesnitsky avatar Jan 12 '23 10:01 lesnitsky