Prueba y Despliegue de Funciones con Firebase y Google Cloud

Clase 11 de 22Curso de Firebase 5: Cloud Functions

Resumen

La moderación automatizada de imágenes en Firebase es más simple cuando el flujo está claro: desplegar la función, habilitar Vision API con facturación y probar el ciclo completo desde la carga en Cloud Storage hasta la notificación. Aquí verás cómo se corrigió un detalle crítico, se activaron servicios en Google Cloud y se validó el comportamiento con ejemplos reales.

¿Cómo preparar y desplegar una función de Firebase con Cloud Storage y Vision API?

Para evitar fallos al iniciar, se corrigió un error común: storage no es una propiedad, sino una función. La solución fue llamar correctamente a la API.

// Corrección clave:
storage(); // usar paréntesis.

Luego, se procedió al despliegue con el comando de Firebase mientras se habilitaba la infraestructura necesaria.

  • Ejecutar el despliegue de funciones.
firebase deploy --only functions
  • Activar el plan de pago por uso en Firebase. Implica seleccionar una cuenta de facturación y registrar tarjeta de crédito. Hay parte gratuita, pero se requiere habilitar pago para usar Vision API.
  • Abrir Google Cloud: console.cloud.google.com.
  • Verificar el proyecto correcto: coincide con el nombre creado por Firebase en Google Cloud.
  • Ir a APIs y servicios > biblioteca.
  • Buscar y habilitar Vision API. Permite consumir detecciones para moderación de imágenes.

Si el despliegue muestra errores de red como Connect timeout, reintentar el comando suele resolverlo.

¿Cómo probar la moderación de imágenes y validar el flujo end-to-end?

La función llamada “Validar image” se dispara con el evento de Cloud Storage. Se probó creando publicaciones y subiendo imágenes para observar la validación y la notificación.

  • Crear un post “test” con una URL de video y subir una imagen apropiada.
  • Recibir notificación: “ya tenemos un nuevo post. Revísalo. Se llama test.”. Indica que el flujo se ejecutó.
  • Revisar Functions en la consola de Firebase: la función aparece desplegada y activa.
  • Ver registros: mensajes como “mensaje enviado correctamente” y “enviar notificación al tópico” confirman que el envío a FCM funcionó.
  • Validar Cloud Storage: se crea un directorio con el UID del usuario y se almacena la imagen subida.
  • Comprobar base de datos: existe el post con el campo de token y publicado: true cuando la imagen es permitida.

Para un caso de contenido restringido se repitió la prueba con “test dos” usando una imagen violenta.

  • Aparece el aviso: “tu post no se puede mostrar, ya que la imagen no es permitida.”.
  • El post no se lista en la interfaz, y en la base de datos queda publicado: false.
  • En Storage se observan las dos imágenes: la permitida y la marcada como inapropiada.

Este flujo confirma que la función modera contenido, actualiza el estado del post y notifica según corresponda.

¿Qué errores, registros y buenas prácticas considerar en el despliegue?

Precisar los puntos críticos ayuda a mantener el sistema estable y confiable.

  • Corrección de API: usar storage() con paréntesis evita fallos en la inicialización.
  • Errores de red: Connect timeout puede ocurrir. Reintentar el despliegue.
  • Costos y habilitación: Vision API requiere facturación activa. Existe cuota gratuita, pero el uso intensivo puede generar cobros.
  • Observabilidad: revisar registros en Functions para confirmar eventos como “enviar notificación” y “mensaje enviado correctamente”.
  • Disparadores adecuados: el icono en Functions indica el evento de Cloud Storage como origen del disparo.
  • Datos del post: campos como token y publicado guían el envío de mensajes y la visibilidad del contenido.
  • Organización en Storage: carpetas por UID del usuario facilitan trazabilidad y auditoría de archivos.

¿Quieres llevarlo más allá? El reto propuesto: usa otras propiedades de Vision API para validar si la imagen contiene contenido tecnológico o de noticias. Cuéntame en los comentarios cómo lo implementarías y qué criterios usarías para marcar cada categoría.