DEV Community

Cover image for How to Schedule Cron Jobs in Firebase Cloud Functions (Without Paid Plans)
HexShift
HexShift

Posted on

How to Schedule Cron Jobs in Firebase Cloud Functions (Without Paid Plans)

Firebase Cloud Functions are powerful, but scheduling background tasks can be tricky without a Blaze plan. Luckily, you can run cron jobs for free by combining Firebase with GitHub Actions or third-party schedulers. This article explains how to build a serverless function in Firebase and trigger it on a schedule without spending a dime.

Step 1: Create a Firebase Function

Inside your Firebase project, add a function in functions/index.js (or functions/src/index.ts if using TypeScript):

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

exports.scheduledTask = functions.https.onRequest((req, res) => {
  console.log("Scheduled function triggered");
  res.send("Function executed");
});

Step 2: Deploy Your Function

Make sure Firebase CLI is installed and authenticated:

firebase deploy --only functions

Once deployed, note the public HTTPS URL of the function. It will look something like:

https://[region]-[project-id].cloudfunctions.net/scheduledTask

Step 3: Schedule With GitHub Actions

Create a GitHub Actions workflow to run the task periodically:

# .github/workflows/firebase-cron.yml
name: Firebase Scheduled Trigger

on:
  schedule:
    - cron: '0 9 * * *' # every day at 9am UTC

jobs:
  run-cron:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Firebase function
        run: curl https://[region]-[project-id].cloudfunctions.net/scheduledTask

Bonus: Use External Cron Services

Tools like cron-job.org, Upstash Scheduler, or EasyCron offer free cron job scheduling. Point their HTTP request to your Firebase function URL at the desired interval.

Pros and Cons

✅ Pros

  • Totally free with Firebase's Spark plan
  • No need for paid scheduling services
  • Flexible triggers using GitHub or third-party tools

⚠️ Cons

  • No native cron support without Blaze plan
  • Delay possible depending on trigger service

🚀 Alternatives

  • Firebase Scheduled Functions: Built-in but requires Blaze billing
  • Trigger.dev: Self-hosted or cloud-based scheduling framework
  • Cloudflare Workers with Cron Triggers: Native support and generous free tier

Conclusion

You don’t need a paid plan to run scheduled jobs on Firebase. By triggering your HTTPS functions through external tools, you can automate tasks efficiently and at no cost — great for background tasks, pings, data refreshes, and more.

If this helped you out, you can support me here: buymeacoffee.com/hexshift

Top comments (0)