If you're building on Firebase, you might wonder how to implement scheduled (cron) jobs in a serverless setup. Firebase doesn’t have built-in cron support, but with Google Cloud Pub/Sub and Cloud Scheduler (with Firebase Functions), you can build reliable cron jobs — and best of all, you can do it within the free tier if you're careful.

Why Use Cloud Scheduler with Firebase Functions?

  • Fully serverless and scalable
  • Low-maintenance once configured
  • Compatible with the Firebase free tier for many use cases

Step 1: Enable Required APIs

In the Google Cloud Console linked to your Firebase project, enable:

  • Cloud Scheduler API
  • Cloud Pub/Sub API

Step 2: Create the Pub/Sub Topic

gcloud pubsub topics create my-scheduled-task

Step 3: Deploy a Firebase Function that Listens to the Topic

In your functions/index.js (or .ts):

const functions = require('firebase-functions');

exports.scheduledFunction = functions.pubsub
  .topic('my-scheduled-task')
  .onPublish((message) => {
    console.log('Running scheduled job:', new Date().toISOString());

    // Your logic here, e.g. data cleanup
    return Promise.resolve();
  });

Step 4: Create a Cloud Scheduler Job

gcloud scheduler jobs create pubsub run-my-scheduled-task \
  --schedule="*/15 * * * *" \
  --time-zone="UTC" \
  --topic=my-scheduled-task \
  --message-body="{}"

This runs your function every 15 minutes. Modify the schedule string as needed.

Pros and Cons

✅ Pros

  • Integrates seamlessly with Firebase
  • Uses managed services, very low maintenance
  • Highly scalable and robust

⚠️ Cons

  • Initial setup is more complex than other solutions
  • May incur cost if usage exceeds free tier (e.g. high-frequency tasks)
  • Limited visibility into execution logs unless using full GCP console

🚀 Alternatives

  • GitHub Actions: Free scheduled workflow runner
  • Upstash Scheduler: Cron HTTP calls to Firebase HTTPS functions
  • Zapier or Make: Non-code scheduling for simpler workflows

Conclusion

Firebase Functions don’t include native cron scheduling, but with Cloud Scheduler and Pub/Sub, you can set up powerful, scalable cron jobs with ease. It’s a powerful setup that plays nicely with Firebase’s free and flexible infrastructure.

If this article helped, you can support more like it at: buymeacoffee.com/hexshift