It's complicated...
Dart has no official implementation of a firebase sdk purely written in native Dart code.
There are kind of official wrapper libs (flutterfire, firebase-dart) around the official JS, iOS and Android SDKs, which are inside the FirebaseExtended organisation on Github ("Projects that are not officially staffed by Googlers ...").
Beside these packages there are also ...
- unofficial attempts to create unified wrappers for all target platforms
- unofficial and incomplete attempts to create a Dart native package for Firebase
In general: If you want to use Firebase on all the different Dart target platforms (Flutter, Dart for Web or VM) you have different packages, varying syntax or even lacking support of many Firebase features.
- It is not here to criticize but to help confused developers.
- If you'd like to contribute or help me improve this list, please open pull requests or issues.
- If you want to discuss, please open issues.
interop library
: library to access firebase products for specific platforms, based on an interface to another programming languagenative library
: direct library to access firebase products, written in Dart, therefore for all platforms, Dart can run onwrapper
: approach to create a more abstract API to access firebase products for multiple platforms by bundling other librariesORM
(object relational mapping): libraries that help you serialize and deserialize the data between the database and your data modelshelper
: tools that help you work with firebase in any way
FirebaseExtended/flutterfire interop library
Firebase plugins for Flutter apps
-> Roadmap
FirebaseExtended/firebase-dart interop library
Dart wrapper for Firebase
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firestore | β | |||||
Functions (https call api) | β | |||||
Analytics | β | |||||
Auth | β | |||||
Core | β | |||||
Realtime Database | β | β | ||||
Messaging | β | |||||
Performance | β | |||||
Remote Config | β | |||||
Storage | β |
cachapa/firedart native library
A dart-native implementation of the Firebase Auth and Firestore SDKs
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firestore | β | β | β | β | β | β |
Auth | β | β | β | β | β | β |
cachapa/fireutil helper
A simple CLI utility to push key-value pairs to Firestore. Useful for scripting, e.g. logging system data using crontab.
platform support is given by its dependency to capacha/firedart.
A Firestore Wrapper library for binding and mapping documents to dart classes. Enjoy !
platform support is given by its dependency to FirebaseExtended/flutterfire.
fluttercommunity/firebase_dart_sdk native library
Unofficial Firebase Flutter SDK. Maintainer: @long1eu
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Auth | β | β | β | β | β | β |
Storage | β | β | β | β | β | β |
Firestore | β | β | β | β | β | β |
Core | β | β | β | β | β | β |
Firestore Helpers - Firestore helper function to create dynamic and location based queries.
platform support is given by its dependency to FirebaseExtended/flutterfire.
atn832/cloud_firestore_mocks helper
Fakes to write unit tests for Cloud Firestore. Instantiate a MockFirestoreInstance, then pass it around your project as if it were a FirestoreInstance. This fake acts like Firestore except it will only keep the state in memory. To help debug, you can use MockFirestoreInstance.dump() to see what's in the fake database. This is useful to set up the state of your database, then check that your UI behaves the way you expect.
platform support is given by its dependency to FirebaseExtended/flutterfire.
atn832/firebase_auth_mocks helper
Mocks for Firebase Auth. Use this package with google_sign_in_mocks to write unit tests involving Firebase Authentication.
platform support is given by its dependency to FirebaseExtended/flutterfire.
Mocks for Firebase Storage. Use this package to write unit tests involving Firebase Storage.
platform support is given by its dependency to FirebaseExtended/flutterfire.
pulyaevskiy/firebase-functions-interop interop library
Write Firebase Cloud functions in Dart, run in Node.js. This is an early development preview, open-source project.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js | cloud functions |
---|---|---|---|---|---|---|---|
firebase-functions-interop | β (NodeJS) | β |
features:
- functions
- functions.config
- functions.analytics
- functions.auth
- functions.firestore π₯
- functions.database
- functions.https
- functions.pubsub
- functions.storage
- functions.remoteConfig
pulyaevskiy/firebase-admin-interop interop library
Write server-side Firebase applications in Dart using Node.js as a runtime.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js | cloud functions |
---|---|---|---|---|---|---|---|
firebase-functions-interop | β (NodeJS) |
features:
- admin
- admin.auth
- admin.app
- admin.credential
- admin.database
- admin.firestore
- admin.messaging
- admin.storage
apptreesoftware/crossfire wrapper
[Discontinued]
Cross-platform APIs for Firebase.
- crossfire - platform-agnostic firebase API
- crossfire_flutter - flutter implementation
- crossfire_web - web implementation
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Auth | β | β | β | β (macOs) | β | |
Firestore | β | β | β | β (macOs) | β |
mono0926/flutter_firestore_ref wrapper
Cross-platform(including web) Firestore type-safe wrapper.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firestore | β | β | β | β (macOs) |
theyakka/cumulus wrapper
Cumulus is a high-level framework that makes developing application logic on top of Firebase quick and simple.
this means: more abstract way to write NodeJS cloud functions.
platform support is given by its dependency to pulyaevskiy/firebase-admin-interop and pulyaevskiy/firebase-functions-interop.
appsup-dart/firebase_dart native library
A pure Dart implementation of the Firebase client
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firebase | β | β | β | β | β | β |
Core | β | β | β | β | β | β |
appsup-dart/firebase_admin native library
A pure Dart implementation of the Firebase admin sdk
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Auth | β | β | β | β | β | β |
appsup-dart/firebase_rest native library
[Discontinued]
A Dart library for reading and writing data to a Firebase database.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firebase | β | β | β | β | β | β |
appsup-dart/firebase_compute native library
[Discontinued]
Library for doing reactive computations with firebase.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
firebase_compute | β | β | β | β | β | β |
amrfarid140/firebase_auth_oauth helper
interop library
A Flutter plugin that makes it easy to perform OAuth sign in flows using FirebaseAuth. It also includes support for Sign in by Apple for Firebase. This plugin supports Android, iOS and Web. OAuth flows are performed by opening pop-up on top of the application to allow the user to authenticate or the native flow in the case of sign in by apple.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
firebase_auth_oauth | β | β | β |
A package that provides various Google Firebase related services helpers. Provides helpers to perform queries on firestore, firebase auth etc.
platform support is given by its dependency to FirebaseExtended/flutterfire.
duyduong/flutter_native_admob helper
interop library
Plugin to integrate Firebase Native Admob to Flutter application Platform supported: iOS, Android
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Admob | β | β |
jorgecoca/lumberdash helper
lumberdash
Do you need logs? Lumberdash is the answer! With a simple but powerful logging API, Lumberdash is the easiest way to record logs. And if that is not enough, you can extend its API and create your own custom plugins for your own logging needs.
firebase_lumberdash plugin
Plugin for lumberdash
It sends your logs to Firebase Analytics.
platform support is given by its dependency to FirebaseExtended/flutterfire.
GaspardMerten/Firebase-Cloud-Messaging-Interop interop library
A dart plugin to use the Firebase Cloud Messaging Api (JS). You can retrieve the user's FCM token, delete it, access the notification data, ...
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Messaging | β |
jarekb123/firestore_all wrapper
Plugin that wraps Firestore from firebase and cloud_firestore packages and expose them as a single API.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firestore | β | β | β | β (macOs) | β |
SwissCheese5/Dartbase-Admin-SDK native library
A dart-native implementation of the Firebase Admin SDK
This library is a fork of cachapa's client firebase sdk; cachapa/firedart; modified and converted to support admin only firebase features. This library also uses these files from appsup-dart/firebase_admin to enable admin authentication to firebase because it is not documented on firebase's official documentation (May 2020):
- user_record.dart.
- token_handler.dart
based on cachapa/firedart.
Product | Flutter iOS | Flutter Android | Flutter Web | Flutter Desktop | native (VM & Fuchsia) | dart2js |
---|---|---|---|---|---|---|
Firebase Auth | β | β | β | β | β | β |
Firestore | β | β | β | β | β | β |
Firebase Storage | β | β | β | β | β | β |
Firebase Cloud Messaging | β | β | β | β | β | β |
kikuchy/lantern helper
Firebase Cloud Firestore's data structure definition language and code generator. Lantern lights bright future of your project.
Have you ever been confused sharing collections / document structure in team? Or forgetting the structure by your self?
No problem. Lantern is simple data structure definition language to write down your Firestore structure.
...
more
Flamingo is a firebase firestore model framework library. π€