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

Apr 22, 2025 - 05:01
 0
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