DocumentSnapshot class

A DocumentSnapshot contains data read from a document in your Firestore database. The data can be extracted with .data() or .get(<field>) to get a specific field.

For a DocumentSnapshot that points to a non-existing document, any data access will return 'undefined'. You can use the exists() method to explicitly verify a document's existence.

Signature:

export declare class DocumentSnapshot<AppModelType = DocumentData, DbModelType extends DocumentData = DocumentData> 

Constructors

Constructor Modifiers Description
(constructor)() Constructs a new instance of the DocumentSnapshot class

Properties

Property Modifiers Type Description
id string Property of the DocumentSnapshot that provides the document's ID.
metadata SnapshotMetadata Metadata about the DocumentSnapshot, including information about its source and local modifications.
ref DocumentReference<AppModelType, DbModelType> The DocumentReference for the document included in the DocumentSnapshot.

Methods

Method Modifiers Description
data(options) Retrieves all fields in the document as an Object. Returns undefined if the document doesn't exist.By default, serverTimestamp() values that have not yet been set to their final value will be returned as null. You can override this by passing an options object.
exists() Returns whether or not the data exists. True if the document exists.
get(fieldPath, options) Retrieves the field specified by fieldPath. Returns undefined if the document or field doesn't exist.By default, a serverTimestamp() that has not yet been set to its final value will be returned as null. You can override this by passing an options object.

DocumentSnapshot.(constructor)

Constructs a new instance of the DocumentSnapshot class

Signature:

protected constructor();

DocumentSnapshot.id

Property of the DocumentSnapshot that provides the document's ID.

Signature:

get id(): string;

DocumentSnapshot.metadata

Metadata about the DocumentSnapshot, including information about its source and local modifications.

Signature:

readonly metadata: SnapshotMetadata;

DocumentSnapshot.ref

The DocumentReference for the document included in the DocumentSnapshot.

Signature:

get ref(): DocumentReference<AppModelType, DbModelType>;

DocumentSnapshot.data()

Retrieves all fields in the document as an Object. Returns undefined if the document doesn't exist.

By default, serverTimestamp() values that have not yet been set to their final value will be returned as null. You can override this by passing an options object.

Signature:

data(options?: SnapshotOptions): AppModelType | undefined;

Parameters

Parameter Type Description
options SnapshotOptions An options object to configure how data is retrieved from the snapshot (for example the desired behavior for server timestamps that have not yet been set to their final value).

Returns:

AppModelType | undefined

An Object containing all fields in the document or undefined if the document doesn't exist.

DocumentSnapshot.exists()

Returns whether or not the data exists. True if the document exists.

Signature:

exists(): this is QueryDocumentSnapshot<AppModelType, DbModelType>;

Returns:

this is QueryDocumentSnapshot<AppModelType, DbModelType>

DocumentSnapshot.get()

Retrieves the field specified by fieldPath. Returns undefined if the document or field doesn't exist.

By default, a serverTimestamp() that has not yet been set to its final value will be returned as null. You can override this by passing an options object.

Signature:

get(fieldPath: string | FieldPath, options?: SnapshotOptions): any;

Parameters

Parameter Type Description
fieldPath string | FieldPath The path (for example 'foo' or 'foo.bar') to a specific field.
options SnapshotOptions An options object to configure how the field is retrieved from the snapshot (for example the desired behavior for server timestamps that have not yet been set to their final value).

Returns:

any

The data at the specified field location or undefined if no such field exists in the document.