← All posts

Guide

Why Firebase budget alerts don't stop your bill

October 21, 2026 · 5 min read

A Firebase or Google Cloud budget only sends alerts, and they arrive hours late. What Google's docs say, and what actually stops the spend.

The short answer

A Firebase or Google Cloud budget is an alert, not a limit. When your spend crosses 50%, 90% or 100% of the amount you set, Google sends an email or a Pub/Sub message, and nothing else happens: your Firestore reads, your functions and your downloads keep running and keep billing. Google says it plainly in the Cloud Billing docs: setting an alerts-only budget "doesn't automatically cap Google Cloud or Google Maps Platform usage or spending."

The Firebase docs repeat it: budget alerts "do not cap your usage or charges", they are alerts "so that you can take action, if needed" (Firebase pricing plans). Someone has to read the alert and do something. That's the gap.

Why the alert arrives late

Even if someone is watching, the alert itself lags behind the spend. Google documents three separate delays:

  • Cost reporting. "There is a delay between your use of Google Cloud resources, and the usage costs reporting to Cloud Billing" (budgets doc).
  • Notification cadence. Budget notifications go to Pub/Sub "multiple times per day", not continuously (programmatic notifications).
  • Daily usage calculation. For Firebase, "Cloud Firestore and Cloud Storage usage are calculated daily" and "Cloud Functions usage is calculated monthly" (avoid surprise bills).

On a brand new budget, Google warns it "may take several hours before receiving the first email or Pub/Sub notification". A function stuck in a loop or a script hammering your database doesn't wait that long.

What about Firebase spend caps?

In 2026 Firebase added spend caps, in Preview. They are a real step forward, with two limits worth knowing:

  • They cover only Firebase AI Logic, App Hosting, Cloud Functions for Firebase and Extensions. Firestore, Realtime Database and Cloud Storage are not covered, and those are where most read loops and download floods happen.
  • Google itself says spend caps "are not 'hard caps'": they act on the same delayed cost data, and "any cost overages incurred during this delay will be billed as normal."

Turn them on if you use those products. Just don't read them as a ceiling on the whole project.

What actually stops the spend

Something has to act on the alert without waiting for a human. In practice:

  1. Tell your app to slow down. Turn off expensive features, pause batch jobs or show a maintenance page while you investigate. We call this a Soft Kill.
  2. Disconnect billing as a last resort. With no billing account, Google stops every paid service in the project. It works even if your code is broken, but it has consequences you should read first: what happens when billing stops.
  3. Catch the spike before the cost report. Usage metrics (reads, invocations, bytes downloaded) show up in Cloud Monitoring within minutes, long before the cost does.

You can build the first two yourself with a Pub/Sub-triggered function (see the DIY kill switch), or let FireShield run them for you: it listens to your budget notifications, runs a Soft Kill or a Hard Kill at the thresholds you choose, and on Pro and Enterprise watches each service's usage for spikes.

FireWand logo

Managing a Firebase Data Connect database?

FireWand lets you browse, filter and edit your tables with a real SQL console, free for your first project.

Try FireWand →