← All horror stories

Bill horror story

$30,356 in 72 hours: one line that read a whole Firestore collection

October 21, 2026 · 3 min read

A viral campaign and a page that loaded every payment on each visit: billions of Firestore reads before anyone noticed.

Retold from HackerNoon, by Nicolas Contreras V, July 23, 2018. Summary in our own words; every figure is the source's.

What happened

Vaki, a Colombian crowdfunding platform, hosted a political campaign that went viral. The traffic was the good news. The bad news was one line in the web app: a call that loaded the whole payments collection every time someone opened a page, to compute totals that were already stored on each campaign.

With the campaign going viral, every visit multiplied that read. The author estimates more than 40 billion Firestore requests, and in his words: "we had spent $30,356.56 USD in just 72 hours!"

How it ended

The team fixed the code. Google let them apply for a startup grant, and the grant paid the bill. The article doesn't describe a refund.

What would have stopped it

  • Reading what you need. Storing and reading the totals, not the whole collection, is the real fix. Firebase lists "forgetting to add a limit to a database query with millions of results" among its common causes of surprise bills.
  • Noticing the read rate. Firestore reads jumping to many times their usual hourly level is visible in Cloud Monitoring within minutes. A spike rule on document reads would have flagged it on the first day, not after 72 hours.
  • Degrading instead of paying. A Soft Kill that switched the campaign pages to a cached, read-light mode would have kept the campaign online while the bug was found.
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 →