FireShield
← Tutte le storie horror

Storia horror di fatturazione

30.356 $ in 72 ore: una riga che leggeva un'intera collezione Firestore

21 ottobre 2026 · 3 min di lettura

Una campagna virale e una pagina che caricava ogni pagamento a ogni visita: miliardi di letture Firestore prima che qualcuno se ne accorgesse.

Raccontata da HackerNoon, di Nicolas Contreras V, July 23, 2018. Riassunto con parole nostre; ogni cifra è quella della fonte.

Cosa è successo

Vaki, una piattaforma di crowdfunding colombiana, ospitava una campagna politica diventata virale. Il traffico era la buona notizia. La cattiva notizia era una riga nella web app: una chiamata che caricava l'intera collezione dei pagamenti ogni volta che qualcuno apriva una pagina, per calcolare totali già memorizzati su ogni campagna.

Con la campagna diventata virale, ogni visita moltiplicava quella lettura. L'autore stima oltre 40 miliardi di richieste Firestore e, con le sue parole: "we had spent $30,356.56 USD in just 72 hours!" (cioè, «avevamo speso 30.356,56 USD in sole 72 ore!»).

Com'è finita

Il team ha corretto il codice. Google ha permesso loro di richiedere un contributo per startup, e il contributo ha pagato la fattura. L'articolo non descrive un rimborso.

Cosa l'avrebbe fermato

  • Leggere ciò che serve. Memorizzare e leggere i totali, non l'intera collezione, è la vera soluzione. Firebase elenca "forgetting to add a limit to a database query with millions of results" (cioè, «dimenticare di aggiungere un limite a una query sul database con milioni di risultati») tra le sue cause comuni di fatture a sorpresa.
  • Accorgersi della frequenza di lettura. Le letture Firestore che salgono a molte volte il loro livello orario abituale sono visibili in Cloud Monitoring in pochi minuti. Una regola sui picchi delle letture di documenti lo avrebbe segnalato il primo giorno, non dopo 72 ore.
  • Degradare invece di pagare. Un Soft Kill che passasse le pagine della campagna a una modalità in cache, con poche letture, avrebbe mantenuto online la campagna mentre si cercava il bug.
Logo di FireWand

Gestisci un database Firebase Data Connect?

FireWand ti permette di sfogliare, filtrare e modificare le tue tabelle con una vera console SQL, gratis per il tuo primo progetto.

Prova FireWand →