0
0
FirebaseHow-ToBeginner · 3 min read

How to Get All Documents in a Firebase Collection Easily

To get all documents in a Firebase collection, use getDocs(collectionReference) from the Firestore SDK. This fetches all documents in the collection as a list you can loop through.
📐

Syntax

Use the Firestore SDK function getDocs() with a reference to your collection. The collection reference is created using collection(db, 'collectionName'). The result is a snapshot containing all documents.

  • db: Your Firestore database instance.
  • collection(): Creates a reference to the collection.
  • getDocs(): Fetches all documents in that collection.
  • The returned snapshot lets you access each document's data.
javascript
import { getFirestore, collection, getDocs } from 'firebase/firestore';

const db = getFirestore();
const colRef = collection(db, 'your-collection-name');
const snapshot = await getDocs(colRef);
snapshot.forEach(doc => {
  console.log(doc.id, '=>', doc.data());
});
💻

Example

This example shows how to fetch and print all documents from a Firestore collection named users. It logs each document's ID and data to the console.

javascript
import { initializeApp } from 'firebase/app';
import { getFirestore, collection, getDocs } from 'firebase/firestore';

const firebaseConfig = {
  apiKey: 'YOUR_API_KEY',
  authDomain: 'YOUR_AUTH_DOMAIN',
  projectId: 'YOUR_PROJECT_ID',
};

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

async function fetchAllUsers() {
  const usersCol = collection(db, 'users');
  const usersSnapshot = await getDocs(usersCol);
  usersSnapshot.forEach(doc => {
    console.log(doc.id, '=>', doc.data());
  });
}

fetchAllUsers();
Output
user1 => { name: 'Alice', age: 30 } user2 => { name: 'Bob', age: 25 } user3 => { name: 'Carol', age: 28 }
⚠️

Common Pitfalls

Common mistakes include:

  • Not awaiting getDocs(), causing empty or unresolved results.
  • Using incorrect collection references or misspelled collection names.
  • Trying to access document data without calling doc.data().
  • Not initializing Firebase app before Firestore calls.
javascript
/* Wrong: Missing await causes unresolved promise */
const snapshot = getDocs(collection(db, 'users'));
snapshot.then(snap => {
  snap.forEach(doc => {
    console.log(doc.id, doc.data());
  });
});

/* Right: Await the promise to get snapshot */
const snapshot = await getDocs(collection(db, 'users'));
snapshot.forEach(doc => {
  console.log(doc.id, doc.data());
});
📊

Quick Reference

Remember these steps to get all documents:

  • Initialize Firebase app and Firestore.
  • Create a collection reference with collection(db, 'name').
  • Use await getDocs(collectionRef) to fetch documents.
  • Loop through snapshot with forEach and use doc.data() to access data.

Key Takeaways

Always await the getDocs() call to get the documents snapshot.
Use collection() to create a reference to the Firestore collection.
Loop through the snapshot with forEach to access each document.
Call doc.data() to get the actual document data.
Initialize Firebase app and Firestore before querying.