A QuerySnapshot contains zero or more [QueryDocumentSnapshot] QueryDocumentSnapshot objects representing the results of a query. The documents can be accessed as an array via the [documents] property or enumerated using the [forEach] method. The number of documents can be determined via the [empty] and [size] properties.
QuerySnapshot
Package
@google-cloud/firestoreConstructors
(constructor)(_query, _readTime, _size, docs, changes)
constructor
(
_query
:
Query<AppModelType
,
DbModelType
> ,
_readTime
:
Timestamp
,
_size
:
number
,
docs
:
()
=
>
Array<QueryDocumentSnapshot<AppModelType
,
DbModelType
>> ,
changes
:
()
=
>
Array<DocumentChange<AppModelType
,
DbModelType
>> );
Constructs a new instance of the QuerySnapshot
class
_query
_readTime
_size
number
The number of documents in the result set.
docs
() => Array
< QueryDocumentSnapshot
<AppModelType, DbModelType>>
A callback returning a sorted array of documents matching this query
changes
() => Array
< DocumentChange
<AppModelType, DbModelType>>
A callback returning a sorted array of document change events for this snapshot.
Properties
docs
get
docs
()
:
Array<QueryDocumentSnapshot<AppModelType
,
DbModelType
>> ;
An array of all the documents in this QuerySnapshot.
{Array.
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
get
().
then
(
querySnapshot
=
>
{
let
docs
=
querySnapshot
.
docs
;
for
(
let
doc
of
docs
)
{
console
.
log
(
`Document found at path:
${
doc
.
ref
.
path
}
`
);
}
});
empty
get
empty
()
:
boolean
;
True if there are no documents in the QuerySnapshot.
{boolean} QuerySnapshot#empty
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
get
().
then
(
querySnapshot
=
>
{
if
(
querySnapshot
.
empty
)
{
console
.
log
(
'No documents found.'
);
}
});
query
get
query
()
:
Query<AppModelType
,
DbModelType
> ;
The query on which you called get() or onSnapshot() in order to get this QuerySnapshot.
{Query} QuerySnapshot#query
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
limit
(
10
).
get
().
then
(
querySnapshot
=
>
{
console
.
log
(
`Returned first batch of results`
);
let
query
=
querySnapshot
.
query
;
return
query
.
offset
(
10
).
get
();
}).
then
(()
=
>
{
console
.
log
(
`Returned second batch of results`
);
});
readTime
get
readTime
()
:
Timestamp
;
The time this query snapshot was obtained.
{Timestamp} QuerySnapshot#readTime
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
get
().
then
((
querySnapshot
)
=
>
{
let
readTime
=
querySnapshot
.
readTime
;
console
.
log
(
`Query results returned at '
${
readTime
.
toDate
()
}
'`
);
});
size
get
size
()
:
number
;
The number of documents in the QuerySnapshot.
{number} QuerySnapshot#size
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
get
().
then
(
querySnapshot
=
>
{
console
.
log
(
`Found
${
querySnapshot
.
size
}
documents.`
);
});
Methods
docChanges()
docChanges
()
:
Array<DocumentChange<AppModelType
,
DbModelType
>> ;
Returns an array of the documents changes since the last snapshot. If this is the first snapshot, all documents will be in the list as added changes.
{Array.
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
onSnapshot
(
querySnapshot
=
>
{
let
changes
=
querySnapshot
.
docChanges
();
for
(
let
change
of
changes
)
{
console
.
log
(
`A document was
${
change
.
type
}
.`
);
}
});
forEach(callback, thisArg)
forEach
(
callback
:
(
result
:
firestore
.
QueryDocumentSnapshot<AppModelType
,
DbModelType
> )
=
>
void
,
thisArg
?:
unknown
)
:
void
;
Enumerates all of the documents in the QuerySnapshot. This is a convenience method for running the same callback on each QueryDocumentSnapshot that is returned.
callback
(result: FirebaseFirestore.QueryDocumentSnapshot
<AppModelType, DbModelType>) => void
A callback to be called with a [QueryDocumentSnapshot] QueryDocumentSnapshot for each document in the snapshot.
thisArg
unknown
The this
binding for the callback..
void
let
query
=
firestore
.
collection
(
'col'
).
where
(
'foo'
,
'=='
,
'bar'
);
query
.
get
().
then
(
querySnapshot
=
>
{
querySnapshot
.
forEach
(
documentSnapshot
=
>
{
console
.
log
(
`Document found at path:
${
documentSnapshot
.
ref
.
path
}
`
);
});
});
isEqual(other)
isEqual
(
other
:
firestore
.
QuerySnapshot<AppModelType
,
DbModelType
> )
:
boolean
;
Returns true if the document data in this QuerySnapshot
is equal to the provided value.
other
FirebaseFirestore.QuerySnapshot
<AppModelType, DbModelType>
The value to compare against. {boolean} true if this QuerySnapshot
is equal to the provided value.
boolean