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?"
Practice
Solution
Step 1: Understand Firebase services purpose
Authentication is designed to handle user sign-in and identity verification.Step 2: Match service to function
Firestore is for database, Hosting is for web hosting, Analytics is for tracking usage.Final Answer:
Authentication -> Option CQuick Check:
User sign-in = Authentication [OK]
- Confusing Firestore with Authentication
- Thinking Hosting manages users
- Mixing Analytics with sign-in
Solution
Step 1: Recall Firebase CLI commands
To set up Hosting, you first initialize it withfirebase init hosting.Step 2: Differentiate commands
firebase deploy hostingdeploys but does not initialize; others are invalid commands.Final Answer:
firebase init hosting -> Option AQuick Check:
Initialize Hosting = firebase init hosting [OK]
- Using deploy before init
- Using non-existent commands
- Confusing start with init
const db = firebase.firestore();
db.collection('users').add({name: 'Anna', age: 25});Solution
Step 1: Understand Firestore collection and add method
Theaddmethod creates a new document in the 'users' collection with given data.Step 2: Analyze code effect
The code adds a new user with name 'Anna' and age 25; it does not update, delete, or retrieve.Final Answer:
Add a new user document with name Anna and age 25 to Firestore -> Option BQuick Check:
add() creates new document = Add a new user document with name Anna and age 25 to Firestore [OK]
- Thinking add updates existing data
- Confusing add with get or delete
- Assuming it retrieves data
Solution
Step 1: Understand the error message context
The error "No public directory found" means Firebase cannot find the folder with website files to deploy.Step 2: Identify cause related to initialization
This usually happens if you did not set or create the public directory path duringfirebase init hosting.Final Answer:
You forgot to specify the public directory during firebase init hosting -> Option DQuick Check:
Missing public directory = You forgot to specify the public directory during firebase init hosting [OK]
- Blaming internet connection
- Confusing Firestore with Hosting
- Not installing Firebase CLI
Solution
Step 1: Identify service for storing user profiles
Firestore is a database service suitable for storing structured user profile data.Step 2: Identify service for tracking user interactions
Analytics tracks user behavior and app usage statistics.Final Answer:
Firestore and Analytics -> Option AQuick Check:
Store profiles + track usage = Firestore + Analytics [OK]
- Choosing Hosting for data storage
- Confusing Realtime Database with Analytics
- Mixing Storage with tracking
Ready to prove it?
Pass the test and this pattern moves unknown
