Navigate

Flutter Cloud Firestore integration compatibility

This page tracks an integration contract: unchanged Firebase code run through a Pyric runtime seam, so there is no separate Firebase public API to measure. The rows below are its signed behavior inventory.

Status legend

Conforming — containerized Dart test matches platform interface under replay Unverified — platform interface behavior not yet verified in container

FirebaseFirestorePlatform — instance & lifecycle

FirebaseFirestorePlatform.instanceReturns the default platform instance registered via PlatformInterface.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#1.
FirebaseFirestorePlatform.instanceFor(app, databaseId)Provides isolated platform instances distinguished by FirebaseApp and database ID.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#2.
FirebaseFirestorePlatform.settingsConfigures host, sslEnabled, persistenceEnabled, and cacheSizeBytes.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#3.
FirebaseFirestorePlatform.doc(path)Instantiates a DocumentReferencePlatform pointing to the slash-delimited path.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#4.
FirebaseFirestorePlatform.collection(path)Instantiates a CollectionReferencePlatform pointing to the slash-delimited path.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#5.
FirebaseFirestorePlatform.collectionGroup(collectionId)Instantiates a QueryPlatform spanning all collections with the specified collectionId.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#6.
FirebaseFirestorePlatform.writeBatch()Instantiates a WriteBatchPlatform for atomic batched mutations.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#7.
FirebaseFirestorePlatform.runTransaction(handler, {timeout, maxAttempts})Runs interactive transaction handler with automatic conflict retries.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#8.
FirebaseFirestorePlatform.clearPersistence()Clears offline client persistence cache when no active listeners exist.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.enableNetwork() / disableNetwork()Toggles client network connectivity to simulate offline operation.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.terminate()Terminates the platform client, unsubscribing all active snapshot streams.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#11.
FirebaseFirestorePlatform.waitForPendingWrites()Resolves when all locally initiated writes have been committed by the server.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.snapshotsInSync()Emits an event when all active listeners have caught up to the same state.
cloud_firestore_platform_interface specification; unverified locally.

DocumentReferencePlatform — document operations

DocumentReferencePlatform.get(options)Reads a single document snapshot from server or cache based on GetOptions.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#14.
DocumentReferencePlatform.set(data)Overwrites target document completely with provided map payload.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#15.
DocumentReferencePlatform.set(data, SetOptions(merge: true))Merges payload fields into existing document without overwriting unspecified fields.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#16.
DocumentReferencePlatform.update(data)Updates specified fields in an existing document; fails if document does not exist.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#17.
DocumentReferencePlatform.delete()Deletes document at reference path from Firestore database.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#18.
DocumentReferencePlatform.collection(subPath)Returns a child CollectionReferencePlatform nested under this document.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#19.
DocumentReferencePlatform.snapshots(options)Returns a broadcast Stream emitting DocumentSnapshotPlatform on document changes.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#20.

QueryPlatform — filters & constraints

QueryPlatform.where(field, isEqualTo: value)Filters documents matching exact field equality.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#21.
QueryPlatform.where(field, isNotEqualTo: value)Filters documents where field does not equal specified value.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#22.
QueryPlatform.where(field, isLessThan / isLessThanOrEqualTo / isGreaterThan / isGreaterThanOrEqualTo)Applies relational range comparison filters on field value.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#23.
QueryPlatform.where(field, arrayContains: value)Filters documents where array field contains the specified element.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#24.
QueryPlatform.where(field, arrayContainsAny: values)Filters documents where array field contains any element from the values list.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#25.
QueryPlatform.where(field, whereIn: values)Filters documents where field value matches any element in values list (IN query).
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#26.
QueryPlatform.where(field, whereNotIn: values)Filters documents where field value matches no element in values list (NOT IN query).
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#27.
QueryPlatform.where(field, isNull: true/false)Filters documents based on null equality or field existence.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#28.
QueryPlatform.orderBy(field, descending: bool)Orders query results by field ascending or descending.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#29.
QueryPlatform.limit(limit)Limits maximum number of matched documents returned.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#30.
QueryPlatform.limitToLast(limit)Limits query results to the last N documents relative to query ordering.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#31.
QueryPlatform.startAt(values) / startAfter(values)Positions starting cursor boundary using field values.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#32.
QueryPlatform.endAt(values) / endBefore(values)Positions ending cursor boundary using field values.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#33.
QueryPlatform.startAtDocument / endAtDocumentPositions query pagination cursors using DocumentSnapshotPlatform instances.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#34.
QueryPlatform.get(options)Executes query and returns QuerySnapshotPlatform containing matched documents.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#35.
QueryPlatform.snapshots(options)Returns broadcast stream emitting QuerySnapshotPlatform upon matching changes.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#36.

CollectionReferencePlatform — collection operations

CollectionReferencePlatform.doc([path])Returns DocumentReferencePlatform under collection; auto-generates 20-char ID if path omitted.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#37.
CollectionReferencePlatform.add(data)Generates auto-ID, writes document data, and returns DocumentReferencePlatform.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#38.

Snapshots & metadata

DocumentSnapshotPlatform.existsReports true if document is present in Firestore; false if absent.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#39.
DocumentSnapshotPlatform.data()Returns revived Map<String, dynamic> containing document field data.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#40.
DocumentSnapshotPlatform.get(field)Extracts single field value supporting dot notation or FieldPath instances.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#41.
SnapshotMetadataPlatform (hasPendingWrites, isFromCache)Exposes local cache and uncommitted pending write status on snapshots.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#42.
QuerySnapshotPlatform.docsProvides ordered List<DocumentSnapshotPlatform> of all query result documents.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#43.
QuerySnapshotPlatform.docChangesExposes List<DocumentChangePlatform> detailing added, modified, removed types and index shifts.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#44.

WriteBatchPlatform — atomic batches

WriteBatchPlatform.set(path, data, options)Enqueues set or merge operation into atomic mutation batch.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#45.
WriteBatchPlatform.update(path, data)Enqueues update operation into atomic mutation batch.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#46.
WriteBatchPlatform.delete(path)Enqueues delete operation into atomic mutation batch.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#47.
WriteBatchPlatform.commit()Atomically commits all enqueued mutations across multiple documents.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#48.

TransactionPlatform — interactive transactions

TransactionPlatform.get(path)Reads document snapshot within transaction context and acquires read lock.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#49.
TransactionPlatform.set(path, data, options)Enqueues transactional set mutation to be committed on handler completion.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#50.
TransactionPlatform.update(path, data)Enqueues transactional update mutation to be committed on handler completion.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#51.
TransactionPlatform.delete(path)Enqueues transactional delete mutation to be committed on handler completion.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#52.
TransactionPlatform retry mechanismCatches optimistic locking conflicts and re-executes handler up to maxAttempts.
cloud_firestore_platform_interface specification; unverified locally.

FieldValuePlatform — sentinels & transformations

FieldValuePlatform.serverTimestamp()Encodes sentinel replaced by server commit timestamp during write.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#54.
FieldValuePlatform.delete()Encodes sentinel that deletes the target field during document update.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#55.
FieldValuePlatform.increment(value)Encodes numeric transformation operand that atomically increments field value.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#56.
FieldValuePlatform.arrayUnion(elements)Encodes transformation adding elements to array field if absent.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#57.
FieldValuePlatform.arrayRemove(elements)Encodes transformation removing matching elements from array field.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#58.

Data types & value codecs

Timestamp codecSerializes and revives Timestamp preserving seconds and nanoseconds across bridge wire format.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#59.
GeoPoint codecSerializes and revives GeoPoint coordinates (latitude, longitude) over WebSocket bridge.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#60.
Blob codecSerializes Uint8List byte buffers to base64 bridge wire format and revives them as Blob.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#61.
DocumentReference codecEncodes and decodes DocumentReferencePlatform values stored within document fields.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#62.
Nested Map and List collectionsDeeply encodes and revives recursive nested Maps and Lists containing mixed primitives and sentinels.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#63.

Aggregations & advanced queries

AggregateQueryPlatform.count()Returns count of matched documents without pulling full document payloads.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#64.
AggregateQueryPlatform.aggregate(sum, average)Computes server-side numeric sum and average across matched query documents.
cloud_firestore_platform_interface specification. Container test: packages/flutter-client/test/conformance_test.dart assertion set firestore-flutter#65.

Current gaps

Unverified

Tracked behavior whose available evidence does not yet establish the production result.

FirebaseFirestorePlatform.clearPersistence()Clears offline client persistence cache when no active listeners exist.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.enableNetwork() / disableNetwork()Toggles client network connectivity to simulate offline operation.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.waitForPendingWrites()Resolves when all locally initiated writes have been committed by the server.
cloud_firestore_platform_interface specification; unverified locally.
FirebaseFirestorePlatform.snapshotsInSync()Emits an event when all active listeners have caught up to the same state.
cloud_firestore_platform_interface specification; unverified locally.
TransactionPlatform retry mechanismCatches optimistic locking conflicts and re-executes handler up to maxAttempts.
cloud_firestore_platform_interface specification; unverified locally.