Implementación de Firestore

Clase 28 de 36Curso de Flask

Resumen

¿Cómo iniciar un proyecto en Google Cloud Platform?

Iniciar un nuevo proyecto en Google Cloud Platform (GCP) es un paso crucial para aprovechar sus diversas herramientas y servicios en la nube. Esta guía te guiará a través del proceso, asegurando que configures de manera efectiva tu entorno para desarrollos futuros.

¿Cómo crear un servicio Firestore?

  1. Creación del documento FirestoreService.py:

    • Empieza creando un archivo llamado FirestoreService.py donde alojarás toda la lógica para interactuar con Firestore.
  2. Importación de Firebase Admin:

    • Inicializa el entorno necesario importando la biblioteca de Firebase Admin, que facilita la comunicación con Firestore:
      import firebase_admin
      from firebase_admin import credentials, firestore
      
  3. Configuración del entorno:

    • Debido a problemas con el reconocimiento del ambiente virtual en algunas configuraciones de SDK, asegúrate de que tu editor de texto está correctamente configurado.
  4. Inicialización de la aplicación:

    • Configura e inicializa la aplicación para conectar con Firestore usando las credenciales de aplicación predeterminadas:
      cred = credentials.ApplicationDefault()
      firebase_admin.initialize_app(cred)
      
  5. Creación de clientes e implementación de métodos:

    • Crea una instancia de Firestore y desarrolla el método getUsers para obtener los usuarios desde la colección:
      db = firestore.client()
      def getUsers():
          users_ref = db.collection(u'users')
          return users_ref.get()
      

¿Cómo ejecutar código de prueba?

Para asegurar que el servicio Firestore está correctamente configurado, es vital ejecutar algunas pruebas.

  1. Configuración del archivo principal:

    • Dentro de tu archivo main, importa e invoca el método para comprobar su funcionalidad:
      from app.firestore_service import getUsers
      
      users = getUsers()
      for user in users:
          print(user.id)  # Imprime ID del usuario
      
  2. Resultados esperados:

    • Un mensaje de advertencia puede aparecer, indicando una falta de uso de una clave JSON para la conexión. No obstante, no afecta funcionalmente el proceso de desarrollo actual.

¿Cómo recuperar todos los "to-dos"?

  1. Configuración para obtener los "to-dos":

    • Implementa una función llamada getTodos que recupere los "to-dos" asociados a un usuario específico:
      def getTodos(user_id):
          todos_ref = db.collection(u'users').document(user_id).collection(u'todos')
          return todos_ref.get()
      
  2. Estrategia de validación:

    • Aunque no se realiza una validación rigurosa de contraseñas durante el inicio de sesión en el ejemplo, puede implementarse un sistema más robusto usando Flask Login en futuras iteraciones.

¿Cómo implementar cambios en tu aplicación?

Con las funciones básicas implementadas, observa cómo reflejar estos cambios en tu aplicación de Flask.

  • Actualización de Plantillas: Asegúrate de integrar las nuevas funciones de Firestore con tus plantillas HTML a través de macros y transformaciones de diccionario para mostrar descripciones y otros detalles de "to-dos".

  • Revisar la estructura de tu aplicación: A medida que añadas más funcionalidades, verifica la correcta organización y estructuración de tu código, manteniendo una lógica clara y mantenible.

Estas pautas te permitirán aprovechar al máximo las capacidades de GCP, proporcionando una base sólida para el desarrollo de aplicaciones con interacción directa en tu base de datos con Firestore. Al seguir aprendiendo, podrás atraer más características avanzadas, como el inicio de sesión autentificado y la integración más estricta de seguridad y gestión de datos.