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
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
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
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
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 |