FireShield
← Todas as histórias de terror

História de terror na fatura

US$ 30.356 em 72 horas: uma linha que lia uma coleção inteira do Firestore

21 de outubro de 2026 · 3 min de leitura

Uma campanha viral e uma página que carregava todos os pagamentos a cada visita: bilhões de leituras no Firestore antes que alguém percebesse.

Recontado a partir de HackerNoon, por Nicolas Contreras V, July 23, 2018. Resumo com nossas próprias palavras; todos os números são da fonte.

O que aconteceu

A Vaki, uma plataforma colombiana de financiamento coletivo, hospedou uma campanha política que viralizou. O tráfego era a boa notícia. A má notícia era uma linha no web app: uma chamada que carregava a coleção inteira de pagamentos toda vez que alguém abria uma página, para calcular totais que já estavam armazenados em cada campanha.

Com a campanha viralizando, cada visita multiplicava essa leitura. O autor estima mais de 40 bilhões de requisições ao Firestore e, nas palavras dele: "we had spent $30,356.56 USD in just 72 hours!" ("tínhamos gastado US$ 30.356,56 em apenas 72 horas!")

Como terminou

A equipe corrigiu o código. O Google permitiu que eles se candidatassem a um crédito para startups, e o crédito pagou a fatura. O artigo não descreve um reembolso.

O que teria impedido

  • Ler apenas o necessário. Armazenar e ler os totais, não a coleção inteira, é a correção de verdade. O Firebase lista "forgetting to add a limit to a database query with millions of results" ("esquecer de adicionar um limite a uma consulta ao banco de dados com milhões de resultados") entre as causas comuns de faturas inesperadas.
  • Perceber a taxa de leitura. Leituras do Firestore saltando para muitas vezes o nível normal por hora ficam visíveis no Cloud Monitoring em minutos. Uma regra de pico nas leituras de documentos teria sinalizado o problema no primeiro dia, não depois de 72 horas.
  • Degradar em vez de pagar. Um Soft Kill que mudasse as páginas da campanha para um modo em cache, com poucas leituras, teria mantido a campanha no ar enquanto o bug era encontrado.
Logo do FireWand

Gerencia um banco de dados do Firebase Data Connect?

O FireWand permite navegar, filtrar e editar suas tabelas com um console SQL de verdade, grátis para o seu primeiro projeto.

Experimente o FireWand →