Why push notifications engage users in Firebase - Performance Analysis
We want to understand how the work needed to send push notifications changes as more users get them.
How does the number of users affect the effort to send notifications?
Analyze the time complexity of the following operation sequence.
const messaging = getMessaging();
const tokens = await getUserTokens();
for (const token of tokens) {
await sendPushNotification(messaging, token, messagePayload);
}
This code gets all user tokens and sends a push notification to each user one by one.
Identify the API calls, resource provisioning, data transfers that repeat.
- Primary operation: Sending a push notification to one user token.
- How many times: Once for each user token in the list.
As the number of users grows, the number of notifications sent grows the same way.
| Input Size (n) | Approx. API Calls/Operations |
|---|---|
| 10 | 10 notifications sent |
| 100 | 100 notifications sent |
| 1000 | 1000 notifications sent |
Pattern observation: The work grows directly with the number of users.
Time Complexity: O(n)
This means sending notifications takes longer as more users get them, growing in a straight line.
[X] Wrong: "Sending one notification automatically sends it to all users at once."
[OK] Correct: Each user needs their own notification sent, so the work adds up with more users.
Understanding how work grows with users helps you design systems that handle many users smoothly.
"What if we send notifications in batches instead of one by one? How would the time complexity change?"
Practice
Solution
Step 1: Understand the purpose of push notifications
Push notifications send messages to users even if they are not actively using the app.Step 2: Identify how notifications keep users engaged
By sending timely alerts, they remind users about updates or actions, encouraging app use.Final Answer:
They send timely alerts that remind users about the app -> Option DQuick Check:
Push notifications = timely alerts [OK]
- Thinking notifications only work when app is open
- Believing notifications slow down the app
- Assuming users must open app every time
Solution
Step 1: Identify Firebase services related to messaging
Firebase Cloud Messaging (FCM) is designed for sending notifications and messages.Step 2: Exclude unrelated services
Authentication manages users, Realtime Database stores data, Hosting serves web content, none send notifications.Final Answer:
Firebase Cloud Messaging -> Option BQuick Check:
Push notifications = Firebase Cloud Messaging [OK]
- Confusing Authentication with messaging
- Choosing Realtime Database for notifications
- Selecting Hosting as notification service
Solution
Step 1: Understand FCM behavior when app is closed
Firebase Cloud Messaging can deliver notifications even if the app is not running.Step 2: Identify user experience
The notification appears on the device, alerting the user without opening the app automatically.Final Answer:
The notification will be delivered and shown to the user -> Option CQuick Check:
FCM delivers notifications even if app closed [OK]
- Thinking app must be open to receive notifications
- Assuming app opens automatically on notification
- Believing notifications get delayed
const message = {
notification: {
title: "Sale Alert",
body: "50% off today!"
},
token: userToken
};
admin.messaging().send(message);
Solution
Step 1: Check asynchronous call usage
admin.messaging().send returns a promise and should be awaited or returned to ensure delivery.Step 2: Verify other options
Title length is fine, token variable name is correct, and body can contain numbers.Final Answer:
Missing return or await before admin.messaging().send -> Option AQuick Check:
Async send needs await or return [OK]
- Ignoring async nature of send()
- Changing variable names unnecessarily
- Thinking notification text rules are strict
Solution
Step 1: Understand personalization and timing
Using user preferences allows sending notifications that match interests and best times.Step 2: Avoid spamming users
Sending the same or random messages frequently annoys users and reduces engagement.Final Answer:
Use user preferences stored in Firebase to send targeted notifications at optimal times -> Option AQuick Check:
Personalized, timely notifications = better engagement [OK]
- Sending identical notifications too often
- Ignoring user preferences
- Sending notifications only when app is open
Ready to prove it?
Pass the test and this pattern moves unknown
