Class DocumentChange (7.5.0)

A DocumentChange represents a change to the documents matching a query. It contains the document affected and the type of change that occurred.

DocumentChange

Package

@google-cloud/firestore

Constructors

(constructor)(type, document, oldIndex, newIndex)

  constructor 
 ( 
 type 
 : 
  
 DocumentChangeType 
 , 
  
 document 
 : 
  
 QueryDocumentSnapshot<AppModelType 
 , 
  
 DbModelType 
> , 
  
 oldIndex 
 : 
  
 number 
 , 
  
 newIndex 
 : 
  
 number 
 ); 
 

Constructs a new instance of the DocumentChange class

Parameters
Name
Description
type
DocumentChangeType

'added' | 'removed' | 'modified'.

document
QueryDocumentSnapshot <AppModelType, DbModelType>

The document.

oldIndex
number

The index in the documents array prior to this change.

newIndex
number

The index in the documents array after this change.

Properties

doc

  get 
  
 doc 
 () 
 : 
  
 QueryDocumentSnapshot<AppModelType 
 , 
  
 DbModelType 
> ; 
 

The document affected by this change.

{QueryDocumentSnapshot} DocumentChange#doc

Example
  let 
  
 query 
  
 = 
  
 firestore 
 . 
 collection 
 ( 
 'col' 
 ). 
 where 
 ( 
 'foo' 
 , 
  
 '==' 
 , 
  
 'bar' 
 ); 
 let 
  
 unsubscribe 
  
 = 
  
 query 
 . 
 onSnapshot 
 ( 
 querySnapshot 
  
 = 
>  
 { 
  
 for 
  
 ( 
 let 
  
 change 
  
 of 
  
 querySnapshot 
 . 
 docChanges 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 change 
 . 
 doc 
 . 
 data 
 ()); 
  
 } 
 }); 
 // Remove this listener. 
 unsubscribe 
 (); 
 

newIndex

  get 
  
 newIndex 
 () 
 : 
  
 number 
 ; 
 

The index of the changed document in the result set immediately after this DocumentChange (i.e. supposing that all prior DocumentChange objects and the current DocumentChange object have been applied). Is -1 for 'removed' events.

{number} DocumentChange#newIndex

Example
  let 
  
 query 
  
 = 
  
 firestore 
 . 
 collection 
 ( 
 'col' 
 ). 
 where 
 ( 
 'foo' 
 , 
  
 '==' 
 , 
  
 'bar' 
 ); 
 let 
  
 docsArray 
  
 = 
  
 []; 
 let 
  
 unsubscribe 
  
 = 
  
 query 
 . 
 onSnapshot 
 ( 
 querySnapshot 
  
 = 
>  
 { 
  
 for 
  
 ( 
 let 
  
 change 
  
 of 
  
 querySnapshot 
 . 
 docChanges 
 ) 
  
 { 
  
 if 
  
 ( 
 change 
 . 
 oldIndex 
  
 !== 
  
 - 
 1 
 ) 
  
 { 
  
 docsArray 
 . 
 splice 
 ( 
 change 
 . 
 oldIndex 
 , 
  
 1 
 ); 
  
 } 
  
 if 
  
 ( 
 change 
 . 
 newIndex 
  
 !== 
  
 - 
 1 
 ) 
  
 { 
  
 docsArray 
 . 
 splice 
 ( 
 change 
 . 
 newIndex 
 , 
  
 0 
 , 
  
 change 
 . 
 doc 
 ); 
  
 } 
  
 } 
 }); 
 // Remove this listener. 
 unsubscribe 
 (); 
 

oldIndex

  get 
  
 oldIndex 
 () 
 : 
  
 number 
 ; 
 

The index of the changed document in the result set immediately prior to this DocumentChange (i.e. supposing that all prior DocumentChange objects have been applied). Is -1 for 'added' events.

{number} DocumentChange#oldIndex

Example
  let 
  
 query 
  
 = 
  
 firestore 
 . 
 collection 
 ( 
 'col' 
 ). 
 where 
 ( 
 'foo' 
 , 
  
 '==' 
 , 
  
 'bar' 
 ); 
 let 
  
 docsArray 
  
 = 
  
 []; 
 let 
  
 unsubscribe 
  
 = 
  
 query 
 . 
 onSnapshot 
 ( 
 querySnapshot 
  
 = 
>  
 { 
  
 for 
  
 ( 
 let 
  
 change 
  
 of 
  
 querySnapshot 
 . 
 docChanges 
 ) 
  
 { 
  
 if 
  
 ( 
 change 
 . 
 oldIndex 
  
 !== 
  
 - 
 1 
 ) 
  
 { 
  
 docsArray 
 . 
 splice 
 ( 
 change 
 . 
 oldIndex 
 , 
  
 1 
 ); 
  
 } 
  
 if 
  
 ( 
 change 
 . 
 newIndex 
  
 !== 
  
 - 
 1 
 ) 
  
 { 
  
 docsArray 
 . 
 splice 
 ( 
 change 
 . 
 newIndex 
 , 
  
 0 
 , 
  
 change 
 . 
 doc 
 ); 
  
 } 
  
 } 
 }); 
 // Remove this listener. 
 unsubscribe 
 (); 
 

type

  get 
  
 type 
 () 
 : 
  
 DocumentChangeType 
 ; 
 

The type of change ('added', 'modified', or 'removed').

{string} DocumentChange#type

Example
  let 
  
 query 
  
 = 
  
 firestore 
 . 
 collection 
 ( 
 'col' 
 ). 
 where 
 ( 
 'foo' 
 , 
  
 '==' 
 , 
  
 'bar' 
 ); 
 let 
  
 docsArray 
  
 = 
  
 []; 
 let 
  
 unsubscribe 
  
 = 
  
 query 
 . 
 onSnapshot 
 ( 
 querySnapshot 
  
 = 
>  
 { 
  
 for 
  
 ( 
 let 
  
 change 
  
 of 
  
 querySnapshot 
 . 
 docChanges 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 `Type of change is 
 ${ 
 change 
 . 
 type 
 } 
 ` 
 ); 
  
 } 
 }); 
 // Remove this listener. 
 unsubscribe 
 (); 
 

Methods

isEqual(other)

  isEqual 
 ( 
 other 
 : 
  
 firestore 
 . 
 DocumentChange<AppModelType 
 , 
  
 DbModelType 
> ) 
 : 
  
 boolean 
 ; 
 

Returns true if the data in this DocumentChange is equal to the provided value.

Parameter
Name
Description
other
FirebaseFirestore.DocumentChange <AppModelType, DbModelType>

The value to compare against. true if this DocumentChange is equal to the provided value.

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