lukas-h / overview-of-firebase-for-dart

A list of all libraries that (try to) cover Firebase for Dart

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview of Firebase for Dart πŸ”₯🎯

A list of all libraries that (try to) cover Firebase for Dart

Why?

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.

This document is supposed to give an overview of Dart packages for Firebase.

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

Types of packages

  • interop library: library to access firebase products for specific platforms, based on an interface to another programming language
  • native library: direct library to access firebase products, written in Dart, therefore for all platforms, Dart can run on
  • wrapper: approach to create a more abstract API to access firebase products for multiple platforms by bundling other libraries
  • ORM (object relational mapping): libraries that help you serialize and deserialize the data between the database and your data models
  • helper: tools that help you work with firebase in any way

Packages

Firebase plugins for Flutter apps

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firestore Pub Package βœ… βœ… βœ… βœ…(macOs)
Functions (https call api) Pub Package βœ… βœ… βœ… βœ…(macOs)
Admob Pub Package βœ… βœ…
Analytics Pub Package βœ… βœ…
Auth Pub Package βœ… βœ… βœ… βœ…(macOs)
Core Pub Package βœ… βœ… βœ… βœ…(macOs)
Crashlytics Pub Package βœ… βœ… βœ…(macOs)
Realtime Database Pub Package βœ… βœ…
Dynamic Links Pub Package βœ… βœ…
In App Messaging Pub Package βœ… βœ…
Messaging Pub Package βœ… βœ…
ML Vision Pub Package βœ… βœ…
Performance Pub Package βœ… βœ…
Remote Config Pub Package βœ… βœ…
Storage Pub Package βœ… βœ… βœ…(macOs)

Dart wrapper for Firebase

Pub Package

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

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firestore βœ… βœ… βœ… βœ… βœ… βœ…
Auth βœ… βœ… βœ… βœ… βœ… βœ…

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 !

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


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.

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


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.

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


Mocks for Firebase Auth. Use this package with google_sign_in_mocks to write unit tests involving Firebase Authentication.

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


Mocks for Firebase Storage. Use this package to write unit tests involving Firebase Storage.

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


Write Firebase Cloud functions in Dart, run in Node.js. This is an early development preview, open-source project.

Pub Package

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

Write server-side Firebase applications in Dart using Node.js as a runtime.

Pub Package

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

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Auth βœ… βœ… βœ… βœ…(macOs) βœ…
Firestore βœ… βœ… βœ… βœ…(macOs) βœ…

Cross-platform(including web) Firestore type-safe wrapper.

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firestore βœ… βœ… βœ… βœ…(macOs)

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.


A pure Dart implementation of the Firebase client

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firebase βœ… βœ… βœ… βœ… βœ… βœ…
Core βœ… βœ… βœ… βœ… βœ… βœ…

A pure Dart implementation of the Firebase admin sdk

Pub Package

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.

Pub Package

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.

Pub Package

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.

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
firebase_auth_oauth βœ… βœ… βœ…

Auth Providers Support πŸ”—


A package that provides various Google Firebase related services helpers. Provides helpers to perform queries on firestore, firebase auth etc.

Pub Package

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

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Admob βœ… βœ…

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.

Pub Package

platform support is given by its dependency to FirebaseExtended/flutterfire.


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

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Messaging βœ…

Plugin that wraps Firestore from firebase and cloud_firestore packages and expose them as a single API.

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firestore βœ… βœ… βœ… βœ…(macOs) βœ…

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.

Pub Package

Product Flutter iOS Flutter Android Flutter Web Flutter Desktop native (VM & Fuchsia) dart2js
Firebase Auth βœ… βœ… βœ… βœ… βœ… βœ…
Firestore βœ… βœ… βœ… βœ… βœ… βœ…
Firebase Storage βœ… βœ… βœ… βœ… βœ… βœ…
Firebase Cloud Messaging βœ… βœ… βœ… βœ… βœ… βœ…

Firebase Cloud Firestore's data structure definition language and code generator. Lantern lights bright future of your project.

Features

Definition Language

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

Pub Package


Flamingo is a firebase firestore model framework library. 🐀

Pub Package

About

A list of all libraries that (try to) cover Firebase for Dart