Cloud Firestore provides powerful query functionality for specifying which documents you want to retrieve from a collection. These queries can also be used with either get()
or addSnapshotListener()
, as described in Get Data.
- While the code samples cover multiple languages, the text explaining the samples refers to the Web method names.
Order and limit data
Cloud Firestore also lets you specify the sort order for your data and specify a limit to how many documents you want to retrieve using orderBy()
and limit()
. For example, you could query for the first 3 cities alphabetically with:
You could also sort in descending order to get the last 3 cities:
You can also order by multiple fields. For example, if you wanted to order by state, and within each state order by population in descending order:
You can combine where()
filters with orderBy()
and limit()
. In the following example, the queries define a population threshold, sort by population in ascending order, and return only the first few results that exceed the threshold:
queryOrderedByField :@ "population" ]
queryLimitedTo : 2 ];
However, if you have a filter with a range comparison (<
, <=
, >
, >=
), your first ordering must be on the same field:
Valid: Range filter and orderBy
on the same field
queryOrderedByField :@ "population" ];
Invalid: Range filter and first orderBy
on different fields