NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #333 most downloaded on pub.dev
Flutter plugin for Cloud Firestore, a cloud-hosted, noSQL database with live synchronization and offline support on Android and iOS.
Last release 18 days ago
14 Sep 2026
Ships on a steady schedule
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
292 releases · first in 2017
Update a dependency to the latest release.
FIX: remove unused dart:async import (#3611).
One column per quarter.
FIX: add missing deprecated static methods (#3278).
Fixed issue #3210 (Query.orderBy(FieldPath.documentId) throws exception).
Query.orderBy(FieldPath.documentId) throws exception).DocumentReference not being parsed correctly).cloud_firestore_web dependency.cloud_firestore_platform_interface dependency to fix 2 race conditions. (#3251)Added missing deprecated Firestore static methods.
Firestore static methods.DEPRECATED: Calling document() is deprecated in favor of doc().
Along with the below changes, the plugin has undergone a quality of life update to better support exceptions thrown. Any Firestore specific errors now return a FirebaseException, allowing you to directly access the code (e.g. permission-denied) and message.
Firestore:
settings() is now a synchronous setter that accepts a Settings instance.
enablePersistence() is now a Web only method, use [Settings.persistenceEnabled] instead for other platforms.document() is deprecated in favor of doc().Firestore is now deprecated. Use FirebaseFirestore instead.Firestore(app: app) is now deprecated. Use FirebaseFirestore.instance or FirebaseFirestore.instanceFor(app: app) instead.clearPersistence() support.disableNetwork() support.enableNetwork() support.snapshotInSync() listener support.terminate() support.waitForPendingWrites() support.CollectionReference:
parent() has been changed to a getter parent.path now always returns the path without leading and trailing slashes.document() is deprecated in favor of doc().CollectionReference now does not depend on the original path used to create the CollectionReference.Query:
getDocuments() is deprecated in favor of get().getDocuments/get has been updated to accept an instance of GetOptions (see below).endAt() and then endBefore() will replace the "end" cursor query with the endBefore).limitToLast query modifier.QuerySnapshot:
documents has been deprecated in favor of docs.documentChanges has been deprecated in favor of docChanges.docs now returns a List<QueryDocumentSnapshot> vs List<DocumentSnapshot>. This doesn't break existing functionality.DocumentReference:
setData/set has been updated to accept an instance of SetOptions (see below, supports mergeFields).get() has been updated to accept an instance of GetOptions (see below).parent() has been changed to a getter parent.path now always returns the path without leading and trailing slashes.documentID has been deprecated in favor of id.setData() has been deprecated in favor of set().updateData() has been deprecated in favor of update().DocumentReference now does not depend on the original path used to create the DocumentReference.DocumentChange:
document() is deprecated in favor of doc().DocumentSnapshot:
get data getter is now a data() method instead.documentID has been deprecated in favor of id.get() method. If no data exists at the given path, a StateError will be thrown.NaN values stored in your Firestore instance are now correctly parsed when reading & writing data.INFINITY values stored in your Firestore instance are now correctly parsed when reading & writing data.-INFINITY values stored in your Firestore instance are now correctly parsed when reading & writing data.WriteBatch:
setData() has been deprecated in favor of set().updateData() has been deprecated in favor of update().setData/set now supports SetOptions to merge data/fields (previously this accepted a Map).Transaction:
DocumentSnapshot.PlatformException was thrown. You can now throw & catch on any exceptions.set, delete, update) were previously Futures. These have been updated to better reflect how transactions should behave - they are now synchronous and are executed atomically once the transaction handler block has finished executing.FlutterResult multiple times.See the new transactions documentation to learn more.
FieldPath:
List of String values. Previously field paths were accessible only via a dot-notated string path. This meant attempting to access a field in a document with a . in the name (e.g. foo.bar@gmail.com) was impossible.GetOptions: New class created to support how data is fetched from Firestore (server, cache, serverAndCache).
SetOptions: New class created to both merge and mergeFields when setting data on documents.
GeoPoint:
GeoPoint instance.Nothing published for this version
Clean up snapshot listeners when Android Activity is destroyed.
Update lower bound of dart dependency to 2.0.0.
Migrate cloud_firestore to android v2 embedding.
Fix crash with pagination with DocumentReference
DocumentReference (#2044)Fix for missing UserAgent.h compilation failures.
Support equality comparison on FieldValue instances.
FieldValue instances.* Add macOS support
Add Web integration documentation to README.
Fixed crashes when using FieldValue.arrayUnion & FieldValue.arrayRemove with DocumentReference objects
FieldValue.arrayUnion & FieldValue.arrayRemove with DocumentReference objectsFixed decoding & encoding platform interface instances in nested maps
Require Flutter SDK 1.12.13+hotfix.4 or later
Fixed crashes when using Query#where with DocumentReference objects
Query#where with DocumentReference objectsMigrate to cloud_firestore_platform_interface.
cloud_firestore_platform_interface.Remove the deprecated author: field from pubspec.yaml
author: field from pubspec.yamlAdded support for in and array-contains-any query operators.
in and array-contains-any query operators.Fixed analyzer warnings about unused fields.
Added FieldPath class and FieldPath.documentId to refer to the document id in queries.
FieldPath class and FieldPath.documentId to refer to the document id in queries.Update documentation to reflect new repository location.
TestWidgetsFlutterBinding.ensureInitialized.Fix flaky integration test for includeMetadataChanges.
includeMetadataChanges.Updated error handling on Android for transactions to prevent crashes.
Fix integer conversion warnings on iOS.
Fixes a crash on Android when running a transaction without an internet connection.
Cast error.code to long to avoid using NSInteger as %ld format warnings.
Updated README instructions for contributing for consistency with other Flutterfire plugins.
New optional includeMetadataChanges parameter added to DocumentReference.snapshots() and Query.snapshots()
includeMetadataChanges parameter added to DocumentReference.snapshots()
and Query.snapshots()message field was not a string* Add metadata to QuerySnapshot.
metadata to QuerySnapshot.Updated how document ids are generated to more closely match native implementations.
Update google-services Android gradle plugin to 4.3.0 in documentation and examples.
Methods of Transaction no longer require await.
Transaction no longer require await.Transaction.Support for orderBy on map fields (e.g. orderBy('cake.flavor')) for startAtDocument, startAfterDocument, endAtDocument, and endBeforeDocument added.
orderBy on map fields (e.g. orderBy('cake.flavor')) for
startAtDocument, startAfterDocument, endAtDocument, and endBeforeDocument added.Added support for combining any of Query.startAtDocument and Query.startAfterDocument with any of Query.endAtDocument and Query.endBeforeDocument.
Query.startAtDocument and Query.startAfterDocument
with any of Query.endAtDocument and Query.endBeforeDocument.Automatically use version from pubspec.yaml when reporting usage to Firebase.
Makes startAtDocument, startAfterDocument, endAtDocument and endBeforeDocument work with Query.collectionGroup queries.
startAtDocument, startAfterDocument, endAtDocument and endBeforeDocument work
with Query.collectionGroup queries.startAtDocument, startAfterDocument, endAtDocument and endBeforeDocument to
also work with a descending order as the last explicit sort order.cacheSizeBytes to a valid value.Added support for cacheSizeBytes to Firestore.settings.
cacheSizeBytes to Firestore.settings.Ensure that all channel calls to the Dart side from the Java side are done on the UI thread. This change allows Transactions to work with upcoming Eng
flutter-fire-fst to be consistent
with other reporting libraries.Added support for Source to Query.getDocuments() and DocumentReference.get().
Source to Query.getDocuments() and DocumentReference.get().* Send user agent to Firebase.
Bump the minimum Flutter version to 1.5.
Breaking change. Fixed CollectionReference.parent to correctly return a DocumentReference. If you were using the method previously to obtain the paren…
CollectionReference.parent to correctly return a DocumentReference.
If you were using the method previously to obtain the parent
document's id via collectionReference.parent().id,
you will have to use collectionReference.parent().documentID now.DocumentReference.parent.Update iOS CocoaPod dependencies to '~> 6.0' to ensure support for FieldValue.increment.
FieldValue.increment.REFACTOR: remove deprecated Flutter Android v1 Embedding usages, including in example app (#7158).
TARGET_OS_OSX (#7116).BREAKING FEAT: bump iOS SDK to version 12.0.0 (#17549).
FEAT(perf): Swift Package Manager support (#16849).
startAtDocument, startAfterDocument, endAtDocument, endBeforeDocument.BREAKING REFACTOR: bump all iOS deployment targets to iOS 13 ahead of Firebase iOS SDK v11 breaking change (#12872).
FieldValue.increment.FieldValue.type and FieldValue.value from public API.Added an integration test for transactions.
Remove Gradle BoM to avoid Gradle version issues.
Bump Android dependencies to latest.
Nothing published for this version
Remove invokeMapMethod calls to prevent crash.
invokeMapMethod calls to prevent crash.Add metadata field to DocumentSnapshot.
Fixes a NoSuchMethodError when using getDocuments on iOS (introduced in 0.9.6).
Bump the minimum Flutter version to 1.2.0.
invokeMethod calls.On iOS, update null checking to match the recommended pattern usage in the Firebase documentation.
Your coding agent can read these notes before it upgrades. Set up the MCP server →