FireShield
← Todas las historias de terror

Historia de terror de facturación

30.356 $ en 72 horas: una línea que leía una colección entera de Firestore

21 de octubre de 2026 · 3 min de lectura

Una campaña viral y una página que cargaba todos los pagos en cada visita: miles de millones de lecturas de Firestore antes de que nadie se diera cuenta.

Contado a partir de HackerNoon, de Nicolas Contreras V, July 23, 2018. Resumen con nuestras propias palabras; todas las cifras son de la fuente.

Qué pasó

Vaki, una plataforma colombiana de crowdfunding, alojó una campaña política que se hizo viral. El tráfico era la buena noticia. La mala era una línea de la app web: una llamada que cargaba toda la colección de pagos cada vez que alguien abría una página, para calcular totales que ya estaban guardados en cada campaña.

Con la campaña en plena viralidad, cada visita multiplicaba esa lectura. El autor estima más de 40.000 millones de peticiones a Firestore y, en sus palabras: "we had spent $30,356.56 USD in just 72 hours!" («¡habíamos gastado 30.356,56 USD en solo 72 horas!»)

Cómo terminó

El equipo arregló el código. Google les permitió solicitar una ayuda para startups, y la ayuda pagó la factura. El artículo no describe ningún reembolso.

Qué lo habría detenido

  • Leer lo que necesitas. Guardar y leer los totales, no toda la colección, es la solución real. Firebase incluye "forgetting to add a limit to a database query with millions of results" («olvidar añadir un límite a una consulta de base de datos con millones de resultados») entre sus causas habituales de facturas inesperadas.
  • Darse cuenta del ritmo de lecturas. Que las lecturas de Firestore se disparen a muchas veces su nivel horario habitual se ve en Cloud Monitoring en minutos. Una regla de picos sobre las lecturas de documentos lo habría señalado el primer día, no después de 72 horas.
  • Degradar en lugar de pagar. Un Soft Kill que pasara las páginas de la campaña a un modo en caché y con pocas lecturas habría mantenido la campaña en línea mientras se encontraba el bug.
Logo de FireWand

¿Gestionas una base de datos de Firebase Data Connect?

FireWand te permite explorar, filtrar y editar tus tablas con una consola SQL de verdad, gratis para tu primer proyecto.

Prueba FireWand →