📖 Scenario: You are managing a Firebase project that needs to perform a task every day automatically. For example, sending a daily summary email or cleaning up old data.
🎯 Goal: Build a Firebase scheduled function that runs every day at midnight UTC.
📋 What You'll Learn
Create a Firebase Cloud Function project setup
Add a schedule configuration to run a function daily
Implement the scheduled function with a simple task
Deploy the scheduled function with correct configuration
💡 Why This Matters
🌍 Real World
Scheduled functions automate repetitive tasks like sending reports or cleaning data without manual intervention.
💼 Career
Understanding scheduled functions is essential for backend developers and cloud engineers managing automated workflows in Firebase.
Progress0 / 4 steps
1
Initialize Firebase Functions
Create a Firebase Cloud Functions project by importing functions from firebase-functions and initialize the functions object.
Firebase
Hint
Use require('firebase-functions') to import the functions module.
2
Add Schedule Configuration
Create a schedule configuration using functions.pubsub.schedule to run every day at midnight UTC with the string '0 0 * * *'.
Firebase
Hint
Use cron syntax '0 0 * * *' for midnight UTC daily.
3
Implement the Scheduled Function
Use dailySchedule.onRun to define a function named dailyTask that returns a resolved promise with the string 'Daily task executed'.
Firebase
Hint
Return a resolved promise with the message to simulate task completion.
4
Export the Scheduled Function
Export the scheduled function as exports.dailyTask so Firebase can deploy it.
Firebase
Hint
Use exports.dailyTask = dailyTask; to make the function deployable.
Practice
(1/5)
1. What is the main purpose of Firebase Scheduled Functions?
easy
A. To run code automatically at specific times without manual intervention
B. To store user data securely in the cloud
C. To create real-time chat applications
D. To manage user authentication and login
Solution
Step 1: Understand the role of scheduled functions
Scheduled functions are designed to run tasks automatically at set times without needing a user to start them.
Step 2: Compare with other Firebase features
Other options like storing data, chat apps, or authentication are handled by different Firebase services, not scheduled functions.
Final Answer:
To run code automatically at specific times without manual intervention -> Option A
Quick Check:
Scheduled functions = automatic timed code run [OK]
Hint: Scheduled functions run code on a timer, no clicks needed [OK]
Common Mistakes:
Confusing scheduled functions with database storage
Thinking scheduled functions handle user login
Assuming scheduled functions manage real-time data
2. Which of the following is the correct way to schedule a Firebase function to run every day at midnight using cron syntax?
easy
A. functions.pubsub.schedule('every day 00:00').onRun(...)
B. functions.pubsub.schedule('daily at midnight').onRun(...)
C. functions.pubsub.schedule('0 0 * * *').onRun(...)
D. functions.pubsub.schedule('midnight every day').onRun(...)
Solution
Step 1: Identify correct cron syntax for midnight daily
The cron expression '0 0 * * *' means minute 0, hour 0, every day, which is midnight daily.
Step 2: Match with Firebase schedule method
Firebase uses cron syntax strings like '0 0 * * *' in schedule() to set times precisely.
Final Answer:
functions.pubsub.schedule('0 0 * * *').onRun(...) -> Option C
Quick Check:
Cron '0 0 * * *' = midnight daily [OK]
Hint: Cron '0 0 * * *' means every day at midnight [OK]
Common Mistakes:
Using natural language instead of cron syntax
Incorrect cron format like 'every day 00:00'
Misplacing hour and minute values in cron
3. Given the following Firebase scheduled function code, what will it log when triggered?
A. The schedule string 'every 60 minutes' is invalid; should use 'every 1 hour' or cron syntax
B. The function must return a promise or null, missing return statement
C. The function name 'cleanup' is reserved and cannot be used
D. The schedule method requires a timezone parameter
Solution
Step 1: Check the schedule string validity
Firebase does not recognize 'every 60 minutes'; it supports 'every 1 hour' or cron expressions.
Step 2: Review other code parts
Returning a promise or null is recommended but not mandatory here; function name and timezone are not issues.
Final Answer:
The schedule string 'every 60 minutes' is invalid; should use 'every 1 hour' or cron syntax -> Option A
Quick Check:
Invalid schedule string = error [OK]
Hint: Use 'every 1 hour' not 'every 60 minutes' in schedule [OK]
Common Mistakes:
Using unsupported time phrases in schedule
Forgetting to return null or a promise
Assuming timezone is always required
5. You want to create a Firebase scheduled function that runs every Monday at 9:30 AM in New York time to send weekly reports. Which is the correct way to configure this function?
hard
A. functions.pubsub.schedule('every Monday 9:30').timeZone('America/New_York').onRun(...)
B. functions.pubsub.schedule('30 9 * * 1').timeZone('America/New_York').onRun(...)
C. functions.pubsub.schedule('0 9 * * 1').timeZone('EST').onRun(...)
D. functions.pubsub.schedule('30 9 * * 1').onRun(...)
Solution
Step 1: Use correct cron syntax for Monday 9:30 AM
The cron '30 9 * * 1' means minute 30, hour 9, every Monday (day 1).
Step 2: Set proper timezone for New York
Use the full IANA timezone string 'America/New_York' to handle daylight savings correctly.
Step 3: Verify other options
functions.pubsub.schedule('every Monday 9:30').timeZone('America/New_York').onRun(...) uses invalid schedule string; functions.pubsub.schedule('0 9 * * 1').timeZone('EST').onRun(...) uses 'EST' which is not a valid timezone identifier; functions.pubsub.schedule('30 9 * * 1').onRun(...) misses timezone setting.
Final Answer:
functions.pubsub.schedule('30 9 * * 1').timeZone('America/New_York').onRun(...) -> Option B