Class DocumentSnapshot (6.0.0)

A DocumentSnapshot is an immutable representation for a document in a Firestore database. The data can be extracted with [data()] or [get(fieldPath)] 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] property to explicitly verify a document's existence.

DocumentSnapshot

Package

@google-cloud/firestore

Constructors

(constructor)(ref, _fieldsProto, readTime, createTime, updateTime)

  constructor 
 ( 
 ref 
 : 
  
 DocumentReference<T> 
 , 
  
  
 _fieldsProto 
 ?: 
  
 ApiMapValue 
  
 | 
  
 undefined 
 , 
  
 readTime 
 ?: 
  
 Timestamp 
 , 
  
 createTime 
 ?: 
  
 Timestamp 
 , 
  
 updateTime 
 ?: 
  
 Timestamp 
 ); 
 

Constructs a new instance of the DocumentSnapshot class

Parameters
Name Description
ref DocumentReference <T>

The reference to the document.

_fieldsProto ApiMapValue | undefined

The fields of the Firestore Document Protobuf backing this document (or undefined if the document does not exist).

readTime Timestamp

The time when this snapshot was read (or undefined if the document exists only locally).

createTime Timestamp

The time when the document was created (or undefined if the document does not exist).

updateTime Timestamp

The time when the document was last updated (or undefined if the document does not exist).

Properties

_fieldsProto

  readonly 
  
 _fieldsProto 
 ?: 
  
 ApiMapValue 
  
 | 
  
 undefined 
 ; 
 

createTime

  get 
  
 createTime 
 () 
 : 
  
 Timestamp 
  
 | 
  
 undefined 
 ; 
 

The time the document was created. Undefined for documents that don't exist.

{Timestamp|undefined} DocumentSnapshot#createTime

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 ( 
 documentSnapshot 
  
 = 
>  
 { 
  
 if 
  
 ( 
 documentSnapshot 
 . 
 exists 
 ) 
  
 { 
  
 let 
  
 createTime 
  
 = 
  
 documentSnapshot 
 . 
 createTime 
 ; 
  
 console 
 . 
 log 
 ( 
 `Document created at ' 
 ${ 
 createTime 
 . 
 toDate 
 () 
 } 
 '` 
 ); 
  
 } 
 }); 
 

exists

  get 
  
 exists 
 () 
 : 
  
 boolean 
 ; 
 

True if the document exists.

{boolean} DocumentSnapshot#exists

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 (( 
 documentSnapshot 
 ) 
  
 = 
>  
 { 
  
 if 
  
 ( 
 documentSnapshot 
 . 
 exists 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 `Data: 
 ${ 
 JSON 
 . 
 stringify 
 ( 
 documentSnapshot 
 . 
 data 
 ()) 
 } 
 ` 
 ); 
  
 } 
 }); 
 

id

  get 
  
 id 
 () 
 : 
  
 string 
 ; 
 

The ID of the document for which this DocumentSnapshot contains data.

{string} DocumentSnapshot#id

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 (( 
 documentSnapshot 
 ) 
  
 = 
>  
 { 
  
 if 
  
 ( 
 documentSnapshot 
 . 
 exists 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 `Document found with name ' 
 ${ 
 documentSnapshot 
 . 
 id 
 } 
 '` 
 ); 
  
 } 
 }); 
 

readTime

  get 
  
 readTime 
 () 
 : 
  
 Timestamp 
 ; 
 

The time this snapshot was read.

{Timestamp} DocumentSnapshot#readTime

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 ( 
 documentSnapshot 
  
 = 
>  
 { 
  
 let 
  
 readTime 
  
 = 
  
 documentSnapshot 
 . 
 readTime 
 ; 
  
 console 
 . 
 log 
 ( 
 `Document read at ' 
 ${ 
 readTime 
 . 
 toDate 
 () 
 } 
 '` 
 ); 
 }); 
 

ref

  get 
  
 ref 
 () 
 : 
  
 DocumentReference<T> 
 ; 
 

A [DocumentReference] DocumentReference for the document stored in this snapshot.

{DocumentReference} DocumentSnapshot#ref

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 (( 
 documentSnapshot 
 ) 
  
 = 
>  
 { 
  
 if 
  
 ( 
 documentSnapshot 
 . 
 exists 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 `Found document at ' 
 ${ 
 documentSnapshot 
 . 
 ref 
 . 
 path 
 } 
 '` 
 ); 
  
 } 
 }); 
 

updateTime

  get 
  
 updateTime 
 () 
 : 
  
 Timestamp 
  
 | 
  
 undefined 
 ; 
 

The time the document was last updated (at the time the snapshot was generated). Undefined for documents that don't exist.

{Timestamp|undefined} DocumentSnapshot#updateTime

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 ( 
 documentSnapshot 
  
 = 
>  
 { 
  
 if 
  
 ( 
 documentSnapshot 
 . 
 exists 
 ) 
  
 { 
  
 let 
  
 updateTime 
  
 = 
  
 documentSnapshot 
 . 
 updateTime 
 ; 
  
 console 
 . 
 log 
 ( 
 `Document updated at ' 
 ${ 
 updateTime 
 . 
 toDate 
 () 
 } 
 '` 
 ); 
  
 } 
 }); 
 

Methods

data()

  data 
 () 
 : 
  
 T 
  
 | 
  
 undefined 
 ; 
 

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

Returns
Type Description
T | undefined

{T|undefined} An object containing all fields in the document or 'undefined' if the document doesn't exist.

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 get 
 (). 
 then 
 ( 
 documentSnapshot 
  
 = 
>  
 { 
  
 let 
  
 data 
  
 = 
  
 documentSnapshot 
 . 
 data 
 (); 
  
 console 
 . 
 log 
 ( 
 `Retrieved data: 
 ${ 
 JSON 
 . 
 stringify 
 ( 
 data 
 ) 
 } 
 ` 
 ); 
 }); 
 

get(field)

  get 
 ( 
 field 
 : 
  
 string 
  
 | 
  
 FieldPath 
 ) 
 : 
  
 any 
 ; 
 

Retrieves the field specified by field .

Parameter
Name Description
field string | FieldPath

The field path (e.g. 'foo' or 'foo.bar') to a specific field.

Returns
Type Description
any

{*} The data at the specified field location or undefined if no such field exists.

Example
  let 
  
 documentRef 
  
 = 
  
 firestore 
 . 
 doc 
 ( 
 'col/doc' 
 ); 
 documentRef 
 . 
 set 
 ({ 
  
 a 
 : 
  
 { 
  
 b 
 : 
  
 'c' 
  
 }}). 
 then 
 (() 
  
 = 
>  
 { 
  
 return 
  
 documentRef 
 . 
 get 
 (); 
 }). 
 then 
 ( 
 documentSnapshot 
  
 = 
>  
 { 
  
 let 
  
 field 
  
 = 
  
 documentSnapshot 
 . 
 get 
 ( 
 'a.b' 
 ); 
  
 console 
 . 
 log 
 ( 
 `Retrieved field value: 
 ${ 
 field 
 } 
 ` 
 ); 
 }); 
 

isEqual(other)

  isEqual 
 ( 
 other 
 : 
  
 firestore 
 . 
 DocumentSnapshot<T> 
 ) 
 : 
  
 boolean 
 ; 
 

Returns true if the document's data and path in this DocumentSnapshot is equal to the provided value.

Parameter
Name Description
other FirebaseFirestore.DocumentSnapshot <T>

The value to compare against. {boolean} true if this DocumentSnapshot is equal to the provided value.

Returns
Type Description
boolean
Create a Mobile Website
View Site in Mobile | Classic
Share by: