FirebaseExtended / flutterfire_desktop

An early-stage, experimental pure-Dart implementation of Firebase SDKs.
Other
406 stars 58 forks source link

FlutterFire Desktop Roadmap 2022 #52

Open pr-Mais opened 2 years ago

pr-Mais commented 2 years ago

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)
cbenhagen commented 2 years ago

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.

pr-Mais commented 2 years ago

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.

eximius313 commented 2 years ago

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

filipenanclarez commented 2 years ago

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.

Mufaddal1125 commented 2 years ago

Will firebase messaging be possible for desktop?

MousyBusiness commented 2 years ago

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?

hwkim1127 commented 2 years ago

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

ghost commented 2 years ago

cloud Desktop

eldarkk commented 2 years ago

hope for cloud firestore with offline mode

hpoul commented 2 years ago

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
eximius313 commented 2 years ago

Are there any estimated dates regarding the roadmap?

oliverbytes commented 2 years ago

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

rohitsangwan01 commented 2 years ago

Any plan for Firebase Database ?

pr-Mais commented 2 years ago

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 commented 2 years ago
  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.

cbenhagen commented 2 years ago

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

pr-Mais commented 2 years ago

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

Epikur86 commented 2 years ago

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

TimWhiting commented 2 years ago

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

MiniSuperDev commented 1 year ago

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.

nickcuypers commented 1 year ago

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

WH-Creations commented 1 year ago

Is this project abandoned?

nickcuypers commented 1 year ago

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

wiedymi commented 1 year ago

Any updates on this topic?

cbenhagen commented 1 year ago

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!

syeds-git commented 1 year ago

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 ?

cbenhagen commented 1 year ago

@pr-Mais did you see my comment?

cbenhagen commented 1 year ago

Maybe @Ehesp or @Salakar could share some insight?

rbellens commented 1 year ago

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.

lesnitsky commented 1 year ago

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.

cbenhagen commented 1 year ago

@lesnitsky great to hear that!

@rbellens please join the discussion in https://discord.com/channels/295953187817521152/1059855806683676702 ;)

iampopal commented 1 year ago

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

dardison commented 1 year ago

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

Danilz-2706 commented 1 year ago

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.

Scylla2020 commented 1 year ago

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.

cbenhagen commented 1 year ago

@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: https://github.com/flutter-tizen/flutter-tizen/issues/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.

moshOntong-IT commented 1 year ago

How about the firebase crashlytics in windows?

asaarnak commented 1 year ago

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

cbenhagen commented 1 year ago

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

Levi-Lesches commented 1 year ago

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.

worldwidee commented 1 year ago

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

hwkim1127 commented 1 year ago

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