com.google.firebase.firestore

Interfaces

EventListener

An interface for event listeners.

ListenerRegistration

Represents a listener that can be removed by callingremove.

LocalCacheSettings

Marker interface implemented by all supported cache settings.

MemoryGarbageCollectorSettings
OnProgressListener

A listener that is called periodically during execution of aLoadBundleTask.

Transaction.Function

An interface for providing code to be executed within a transaction context.

WriteBatch.Function

An interface for providing code to be executed within aWriteBatch context.

Classes

AggregateField

Represents an aggregation that can be performed by Firestore.

AggregateField.AverageAggregateField

Represents an "average" aggregation that can be performed by Firestore.

AggregateField.CountAggregateField

Represents a "count" aggregation that can be performed by Firestore.

AggregateField.SumAggregateField

Represents a "sum" aggregation that can be performed by Firestore.

AggregateQuery

A query that calculates aggregations over an underlying query.

AggregateQuerySnapshot

The results of executing anAggregateQuery.

Blob

Immutable class representing an array of bytes in Cloud Firestore.

CollectionReference

ACollectionReference can be used for adding documents, getting document references, and querying for documents (using the methods inherited fromQuery).

DocumentChange

ADocumentChange represents a change to the documents matching a query.

DocumentReference

ADocumentReference refers to a document location in a Cloud Firestore database and can be used to write, read, or listen to the location.

DocumentSnapshot

ADocumentSnapshot contains data read from a document in your Cloud Firestore database.

FieldPath

AFieldPath refers to a field in a document.

FieldValue

Sentinel values that can be used when writing document fields withset() orupdate().

Filter

AFilter represents a restriction on one or more field values and can be used to refine the results of aQuery.

FirebaseFirestore

Represents a Cloud Firestore database and is the entry point for all Cloud Firestore operations.

FirebaseFirestoreSettings

Settings used to configure aFirebaseFirestore instance.

FirebaseFirestoreSettings.Builder

A Builder for creatingFirebaseFirestoreSettings.

GeoPoint

Immutable class representing aGeoPoint in Cloud Firestore

LoadBundleTask

Represents the task of loading a Firestore bundle.

LoadBundleTaskProgress

Represents a progress update or a final state from loading bundles.

MemoryCacheSettings

Configures the SDK to use a memory cache.

MemoryCacheSettings.Builder

A Builder for creatingMemoryCacheSettings instance.

MemoryEagerGcSettings

Configures the SDK to use an eager garbage collector for memory cache.

MemoryEagerGcSettings.Builder
MemoryLruGcSettings

Configures the SDK to use a Least-Recently-Used garbage collector for memory cache.

MemoryLruGcSettings.Builder
PersistentCacheIndexManager

Persistent cache indexes can improve performance of local query execution.

PersistentCacheSettings

Configures the SDK to use a persistent cache.

PersistentCacheSettings.Builder

A Builder for creatingPersistentCacheSettings instance.

Query

AQuery which you can read or listen to.

QueryDocumentSnapshot

AQueryDocumentSnapshot contains data read from a document in your Cloud Firestore database as part of a query.

QuerySnapshot

AQuerySnapshot contains the results of a query.

SetOptions

An options object that configures the behavior ofset() calls.

SnapshotListenOptions

An options object that configures the behavior ofaddSnapshotListener() calls.

SnapshotListenOptions.Builder

Builder for constructingSnapshotListenOptions instances.

SnapshotMetadata

Metadata about a snapshot, describing the state of the snapshot.

Transaction

ATransaction is passed to a Function to provide the methods to read and write data within the transaction context.

TransactionOptions

Options to customize transaction behavior forrunTransaction.

TransactionOptions.Builder

A Builder for creatingTransactionOptions.

VectorValue

Represent a vector type in Firestore documents.

WriteBatch

A write batch, used to perform multiple writes as a single atomic unit.

Exceptions

FirebaseFirestoreException

A class of exceptions thrown by Cloud Firestore.

Annotations

DocumentId

Annotation used to mark a POJO property to be automatically populated with the document's ID when the POJO is created from a Cloud Firestore document (for example, viatoObject).

Exclude

Marks a field as excluded from the database instance.

IgnoreExtraProperties

Properties that don't map to class fields are ignored when serializing to a class annotated with this annotation.

PropertyName

Marks a field to be renamed when serialized.

ServerTimestamp

Annotation used to mark a timestamp field to be populated with a server timestamp.

ThrowOnExtraProperties

Properties that don't map to class fields when serializing to a class annotated with this annotation cause an exception to be thrown.

Enums

AggregateSource

The sources from which anAggregateQuery can retrieve its results.

DocumentChange.Type

An enumeration of snapshot diff types.

DocumentSnapshot.ServerTimestampBehavior

Controls the return value for server timestamps that have not yet been set to their final value.

FirebaseFirestoreException.Code

The set of Cloud Firestore status codes.

ListenSource

Configures the source option ofaddSnapshotListener() calls onDocumentReference andQuery.

LoadBundleTaskProgress.TaskState

Represents the state of bundle loading tasks.

MetadataChanges

Indicates whether metadata-only changes (that is, onlyDocumentSnapshot.getMetadata() orQuerySnapshot.getMetadata() changed) should trigger snapshot events.

Query.Direction

An enum for the direction of a sort.

Source

Configures the behavior ofget() calls onDocumentReference andQuery.

Top-level functions summary

Extension functions summary

inlineFlow<T?>

Starts listening to the document referenced by thisDocumentReference with the given options and emits its values converted to a POJO via aFlow.

inlineFlow<List<T>>
<T : Any>Query.dataObjects(metadataChanges: MetadataChanges)

Starts listening to this query with the given options and emits its values converted to a POJO via aFlow.

FirebaseFirestore
Firebase.firestore(app: FirebaseApp, database: String)

Returns theFirebaseFirestore instance of a givenFirebaseApp and database name.

FirebaseFirestore

Returns theFirebaseFirestore instance of a givenFirebaseApp.

FirebaseFirestore

Returns theFirebaseFirestore instance of the defaultFirebaseApp, given the database name.

inline T?
<T : Any?>DocumentSnapshot.getField(
    fieldPath: FieldPath,
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
)

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

inline T?
<T : Any?>DocumentSnapshot.getField(fieldPath: FieldPath)

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

inline T?
<T : Any?>DocumentSnapshot.getField(
    field: String,
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
)

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

inline T?

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

Flow<DocumentSnapshot>

Starts listening to the document referenced by thisDocumentReference with the given options and emits its values via aFlow.

Flow<QuerySnapshot>
Query.snapshots(metadataChanges: MetadataChanges)

Starts listening to this query with the given options and emits its values via aFlow.

inline T?

Returns the contents of the document converted to a POJO or null if the document doesn't exist.

inline T?
<T : Any?>DocumentSnapshot.toObject(
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
)

Returns the contents of the document converted to a POJO or null if the document doesn't exist.

inline T

Returns the contents of the document converted to a POJO.

inline T

Returns the contents of the document converted to a POJO.

inlineList<T>

Returns the contents of the documents in the QuerySnapshot, converted to the provided class, as a list.

inlineList<T>
<T : Any>QuerySnapshot.toObjects(
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
)

Returns the contents of the documents in the QuerySnapshot, converted to the provided class, as a list.

Extension properties summary

Top-level functions

firestoreSettings

fun firestoreSettings(init: FirebaseFirestoreSettings.Builder.()->Unit): FirebaseFirestoreSettings

Returns aFirebaseFirestoreSettings instance initialized using theinit function.

Extension functions

dataObjects

inline fun <T : Any>DocumentReference.dataObjects(
    metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE
): Flow<T?>

Starts listening to the document referenced by thisDocumentReference with the given options and emits its values converted to a POJO via aFlow.

  • When the returned flow starts being collected, anEventListener will be attached.

  • When the flow completes, the listener will be removed.

Parameters
<T : Any>

The type of the object to convert to.

metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE

controls metadata-only changes. Default:MetadataChanges.EXCLUDE

dataObjects

inline fun <T : Any>Query.dataObjects(
    metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE
): Flow<List<T>>

Starts listening to this query with the given options and emits its values converted to a POJO via aFlow.

  • When the returned flow starts being collected, anEventListener will be attached.

  • When the flow completes, the listener will be removed.

Parameters
<T : Any>

The type of the object to convert to.

metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE

controls metadata-only changes. Default:MetadataChanges.EXCLUDE

firestore

fun Firebase.firestore(app: FirebaseApp, database: String): FirebaseFirestore

Returns theFirebaseFirestore instance of a givenFirebaseApp and database name.

firestore

fun Firebase.firestore(app: FirebaseApp): FirebaseFirestore

Returns theFirebaseFirestore instance of a givenFirebaseApp.

firestore

fun Firebase.firestore(database: String): FirebaseFirestore

Returns theFirebaseFirestore instance of the defaultFirebaseApp, given the database name.

getField

inline fun <T : Any?>DocumentSnapshot.getField(
    fieldPath: FieldPath,
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
): T?

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

Parameters
<T : Any?>

The type to convert the field value to.

fieldPath: FieldPath

The path to the field.

serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior

Configures the behavior for server timestamps that have not yet

beensettotheirfinalvalue.
@return

The value at the given field or null.

getField

inline fun <T : Any?>DocumentSnapshot.getField(fieldPath: FieldPath): T?

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

Parameters
<T : Any?>

The type to convert the field value to.

fieldPath: FieldPath

The path to the field.

Returns
T?

The value at the given field or null.

getField

inline fun <T : Any?>DocumentSnapshot.getField(
    field: String,
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
): T?

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

Parameters
<T : Any?>

The type to convert the field value to.

field: String

The path to the field.

serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior

Configures the behavior for server timestamps that have not yet

beensettotheirfinalvalue.
@return

The value at the given field or null.

getField

inline fun <T : Any?>DocumentSnapshot.getField(field: String): T?

Returns the value at the field, converted to a POJO, or null if the field or document doesn't exist.

Parameters
<T : Any?>

The type to convert the field value to.

field: String

The path to the field.

Returns
T?

The value at the given field or null.

snapshots

fun DocumentReference.snapshots(
    metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE
): Flow<DocumentSnapshot>

Starts listening to the document referenced by thisDocumentReference with the given options and emits its values via aFlow.

  • When the returned flow starts being collected, anEventListener will be attached.

  • When the flow completes, the listener will be removed.

Parameters
metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE

controls metadata-only changes. Default:MetadataChanges.EXCLUDE

snapshots

fun Query.snapshots(
    metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE
): Flow<QuerySnapshot>

Starts listening to this query with the given options and emits its values via aFlow.

  • When the returned flow starts being collected, anEventListener will be attached.

  • When the flow completes, the listener will be removed.

Parameters
metadataChanges: MetadataChanges = MetadataChanges.EXCLUDE

controls metadata-only changes. Default:MetadataChanges.EXCLUDE

toObject

inline fun <T : Any?>DocumentSnapshot.toObject(): T?

Returns the contents of the document converted to a POJO or null if the document doesn't exist.

Parameters
<T : Any?>

The type of the object to create.

Returns
T?

The contents of the document in an object of type T or null if the document doesn't

exist.

toObject

inline fun <T : Any?>DocumentSnapshot.toObject(
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
): T?

Returns the contents of the document converted to a POJO or null if the document doesn't exist.

Parameters
<T : Any?>

The type of the object to create.

serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior

Configures the behavior for server timestamps that have not yet

beensettotheirfinalvalue.
@return

The contents of the document in an object of type T or null if the document doesn't

exist.

toObject

inline fun <T : Any>QueryDocumentSnapshot.toObject(): T

Returns the contents of the document converted to a POJO.

Parameters
<T : Any>

The type of the object to create.

Returns
T

The contents of the document in an object of type T.

toObject

inline fun <T : Any>QueryDocumentSnapshot.toObject(
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
): T

Returns the contents of the document converted to a POJO.

Parameters
<T : Any>

The type of the object to create.

serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior

Configures the behavior for server timestamps that have not yet

beensettotheirfinalvalue.
@return

The contents of the document in an object of type T.

toObjects

inline fun <T : Any>QuerySnapshot.toObjects(): List<T>

Returns the contents of the documents in the QuerySnapshot, converted to the provided class, as a list.

Parameters
<T : Any>

The POJO type used to convert the documents in the list.

toObjects

inline fun <T : Any>QuerySnapshot.toObjects(
    serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior
): List<T>

Returns the contents of the documents in the QuerySnapshot, converted to the provided class, as a list.

Parameters
<T : Any>

The POJO type used to convert the documents in the list.

serverTimestampBehavior: DocumentSnapshot.ServerTimestampBehavior

Configures the behavior for server timestamps that have not yet

beensettotheirfinalvalue.

Extension properties

firestore

val Firebase.firestoreFirebaseFirestore

Returns theFirebaseFirestore instance of the defaultFirebaseApp.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-07-21 UTC.