0
0
FirebaseHow-ToBeginner · 3 min read

How to Use Limit in Firestore Queries

Use the limit(n) method on a Firestore query to restrict the number of documents returned to n. This helps control data size and improve performance by fetching only the needed documents.
📐

Syntax

The limit method is called on a Firestore query to specify the maximum number of documents to return.

  • limit(n): Limits the query results to n documents.
javascript
const query = firestore.collection('users').limit(5);
💻

Example

This example fetches up to 3 user documents from the users collection and logs their names.

javascript
import { getFirestore, collection, query, limit, getDocs } from 'firebase/firestore';

const firestore = getFirestore();
const usersRef = collection(firestore, 'users');
const limitedQuery = query(usersRef, limit(3));

async function fetchLimitedUsers() {
  const querySnapshot = await getDocs(limitedQuery);
  querySnapshot.forEach(doc => {
    console.log(doc.id, '=>', doc.data().name);
  });
}

fetchLimitedUsers();
Output
user1 => Alice user2 => Bob user3 => Carol
⚠️

Common Pitfalls

Common mistakes when using limit include:

  • Not combining limit with an orderBy clause, which can cause unpredictable results.
  • Expecting limit to paginate data without using cursors like startAfter.
  • Using limit on large collections without indexes, which can slow queries.
javascript
import { orderBy } from 'firebase/firestore';

/* Wrong: limit without orderBy can return random documents */
const wrongQuery = query(collection(firestore, 'users'), limit(2));

/* Right: use orderBy with limit for predictable results */
const rightQuery = query(collection(firestore, 'users'), orderBy('name'), limit(2));
📊

Quick Reference

MethodDescription
limit(n)Returns up to n documents from the query.
orderBy(field)Sorts documents by a field, recommended with limit.
startAfter(doc)Starts query after a specific document, used for pagination.

Key Takeaways

Use limit(n) to restrict query results to n documents for efficiency.
Always combine limit with orderBy for consistent and predictable results.
Limit alone does not paginate; use cursors like startAfter for pagination.
Limit helps reduce data transfer and speeds up queries on large collections.