Firebase services overview - Time & Space Complexity
When using Firebase services, it's important to know how the time to complete tasks changes as you add more data or users.
We want to understand how the number of operations grows when using Firebase features.
Analyze the time complexity of reading multiple documents from Firestore.
const db = firebase.firestore();
const userIds = ["user1", "user2", "user3", /* more users */];
async function fetchUsers(ids) {
const users = [];
for (const id of ids) {
const doc = await db.collection('users').doc(id).get();
users.push(doc.data());
}
return users;
}
This code fetches user data one by one from Firestore for each user ID.
Look at what repeats as input grows.
- Primary operation: Firestore document read API call (
doc(id).get()) - How many times: Once per user ID in the list
Each user ID causes one read call, so more users mean more calls.
| Input Size (n) | Approx. Api Calls/Operations |
|---|---|
| 10 | 10 document reads |
| 100 | 100 document reads |
| 1000 | 1000 document reads |
Pattern observation: The number of API calls grows directly with the number of user IDs.
Time Complexity: O(n)
This means the time to fetch users grows in a straight line as you add more users.
[X] Wrong: "Fetching multiple documents at once takes the same time as fetching one."
[OK] Correct: Each document read is a separate call, so total time adds up with more documents.
Understanding how Firebase operations scale helps you design apps that stay fast as they grow. This skill shows you can think about real-world app performance.
"What if we used a batch get to fetch all documents at once? How would the time complexity change?"