Controla los gastos de tu proyecto de Firebase 馃敟

Publicado el 23.04.2022 a las 13:58

Controla los gastos de tu proyecto de Firebase 馃敟

  1. 驴Qu茅 error casi me lleva a la ruina?

  2. Programar alertas de presupuesto en Firebase

  3. 驴C贸mo inhabilitar aplicaci贸n en Firebase?

Logo de fjmduran

Controla los gastos de tu proyecto de Firebase 馃敟

Evita sorpresas desagradables por abusos en tu proyecto de Firebase 馃槰


El motivo de este art铆culo es que esta semana he tenido un error programando una de mis aplicaciones que consume como base de datos Firestore de Firebase. Si no llega a ser porque el proyecto en Firebase lo ten铆a configurado en el plan gratuito Spark me hubiera dolido mucho la cabeza y sobre todo la cartera 馃捀


Te explicar茅 en este art铆culo c贸mo establecer presupuestos personalizados para que cuando te vayas acercando a dicho presupuesto Google te aviso por email y as铆 puedas comprobar qu茅 est谩 pasando y si est谩 todo correcto.


C贸mo he escrito en otros art铆culos, Firebase est谩 muy bien para comenzar con un proyecto ya que te permite tener tu MVP (Minimum Viable Product) muy r谩pido en producci贸n, pero si no tienes cuidado el proyecto te puede costar mucho dinero por alg煤n tipo de abuso o porque tu producto escale mucho.

驴Qu茅 error casi me lleva a la ruina?

El error que casi me lleva a la ruina fue el t铆pico de consultar un documento de Firestore subscribi茅ndome a 茅l y dentro de la subscripci贸n actualizar dicho documento sin cancelar la subscripci贸n, de forma que entraba en un bucle infinito.


Para darte m谩s detalle, quer铆a actualizar las unidades de venta de una posici贸n de un p茅dido, para lo cual, me subscrib铆a al pedido y manten铆a la subscripci贸n abierta para que cuando modificara las unidades de la posici贸n se viera reflejado autom谩ticamente, as铆 que dentro de la subscripci贸n al pedido, modificaba dicho pedido con las nuevas unidades de la posici贸n que quer铆a modificar.

ERROR de principiante 馃挘


Como te puedes imaginar, al probar mi c贸digo r谩pidamente alcanc茅 la cuota gratuita del plan Spark de Firebase de 20.000 escrituras diarias.


Para solventar el problema lo que hice fue solicitar el nuevo n煤mero de unidades con un modal, de forma que hac铆a la actualizaci贸n del pedido en el modal y tras la actualizaci贸n cerraba dicho modal evitando as铆 que al refrescarse el pedido por la modificaci贸n se volviera a guardar 馃槑


A continuaci贸n te voy a explicar c贸mo programar avisos en la consola de Google y as铆 evitar en un mes te encuentres facturas de cientos e incluso miles de euros. Hay por ah铆 historias de aplicaciones que usaban como backend a Firebase con factura mensual de casi un mill贸n de d贸lares 馃槺

Programar alertas de presupuesto en Firebase

Antes se pod铆a programar un l铆mite de gasto diario para Firestore, pero desde el 12 de diciembre del 2019 Google elimin贸 esta opci贸n en el App Engine (punto negativo para Google)


Lo que actualmente podemos hacer, es programar alertas de presupuesto, de manera que cuando nos vayamos acercando a dicho prepuesto Google nos avisar谩 por email. Para ello:

  1. Ve a la consola de Google, abre tu proyecto y escribe en el buscador presupuesto

    Prespuesto de proyecto en la consola de Google Cloud Platform

    Tambi茅n puedes hacer clic sobre Facturaci贸n de las opciones del men煤 lateral y despu茅s en Presupuestos y alertas

  2. Aqu铆 podr谩s configurar tanto el presupuesto como las alertas

    Pantalla de configuraci贸n de presupuesto de Google Cloud Platform

Muy bien, hasta aqu铆 detectaremos que nos acercamos a nuestros presupuesto configurado, pero qu茅 hacer despu茅s de que detectemos que nos estamos acercando al l铆mite establecido y adem谩s se est谩 haciendo de una forma no controlada

驴C贸mo inhabilitar aplicaci贸n en Firebase?

Si detectas un abuso en tu aplicaci贸n o un fallo est谩 provocando un alto consumo lo que debes hacer es inhabilitar la aplicaci贸n, para ello:

  1. Ve a las opciones del App Engine en las opciones del men煤 lateral de la consola de Google

    Opciones del APP Engine de Google Cloud Platform
  2. Inhabilita/desactiva la aplicaci贸n. Podr谩s volver a habilitarla cuando quieras.

    Deshabilitar aplicaci贸n en Google Cloud Console

Inhabilitar la aplicaci贸n no provocar谩 p茅rdidas de datos guardados, as铆 que lo puedes hacer tranquilamente 馃槉


Hasta luego 馃枛