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
Parameters | |
---|---|
Name | Description |
_query |
Query<AppModelType, DbModelType>
The originating query. |
_readTime |
Timestamp
The time when this query snapshot was obtained. |
_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.
Returns | |
---|---|
Type | Description |
Array<DocumentChange<AppModelType, DbModelType>> |
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.
Parameters | |
---|---|
Name | Description |
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 |
Returns | |
---|---|
Type | Description |
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.
Parameter | |
---|---|
Name | Description |
other |
FirebaseFirestore.QuerySnapshot<AppModelType, DbModelType>
The value to compare against. {boolean} true if this |
Returns | |
---|---|
Type | Description |
boolean |