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/firestoreConstructors
(constructor)(type, document, oldIndex, newIndex)
constructor
(
type
:
DocumentChangeType
,
document
:
QueryDocumentSnapshot<T>
,
oldIndex
:
number
,
newIndex
:
number
);
Constructs a new instance of the DocumentChange
class
Name | Description |
type | DocumentChangeType
'added' | 'removed' | 'modified'. |
document | QueryDocumentSnapshot
<T>
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<T>
;
The document affected by this change.
{QueryDocumentSnapshot} DocumentChange#doc
Type | Description |
---|---|
QueryDocumentSnapshot <T> |
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
Type | Description |
---|---|
number |
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
Type | Description |
---|---|
number |
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
Type | Description |
---|---|
DocumentChangeType |
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<T>
)
:
boolean
;
Returns true if the data in this DocumentChange
is equal to the provided value.
Name | Description |
other | FirebaseFirestore.DocumentChange
<T>
The value to compare against. true if this |
Type | Description |
---|---|
boolean |