ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Usa la información de los usuarios autenticados para almacenar y recuperar datos específicos de cada usuario, así como para personalizar la experiencia de cada usuario con tu servicio web.
En un paso anterior, actualizó el servicio web para que mostrara las diez últimas solicitudes de todos los usuarios. En este paso, utilizarás la información del usuario autenticado para actualizar tu servicio web de forma que la página solo muestre una lista de las diez últimas solicitudes realizadas por el usuario autenticado.
Antes de empezar
Si has completado todos los pasos anteriores de esta guía, puedes saltarte esta sección. De lo contrario, realice una de las siguientes acciones:
Empieza por Crear una aplicación Python 3 y sigue todos los pasos hasta llegar a este.
Si ya tienes un Google Cloud proyecto, puedes continuar descargando una copia del servicio web y añadiendo Firebase:
Descarga el repositorio de la aplicación de muestra con Git:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
También puedes descargar el ejemplo como un archivo ZIP y, a continuación, extraerlo.
Ve al directorio que contiene una copia de los archivos del paso anterior:
cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-3
Almacenar y recuperar datos específicos de los usuarios
Puedes indicar que los datos están conectados a un usuario concreto mediante los ancestros de Firestore en el modo de Datastore (Datastore), que te permiten organizar los datos de Datastore de forma jerárquica.
Para ello, realiza los pasos que se indican a continuación:
Actualiza los métodos
store_time
yfetch_time
para usar ancestros de Datastore al almacenar y recuperar entidadesvisit
:Cada entidad
visit
tiene ahora un ancestro al que está conectada. Estos ancestros son entidades de Datastore que representan a usuarios autenticados individuales. La clave de cada ancestro incluye elUser
tipo y un ID personalizado, que es la dirección de correo del usuario autenticado. Utiliza la clave de ancestro para consultar en la base de datos solo las horas asociadas a un usuario específico.Actualiza la llamada al método
store_times
en tu métodoroot
y muévelo al interior de la condiciónid_token
para que solo se ejecute si el servidor ha autenticado a un usuario:
Configurar índices
Datastore realiza consultas basadas en índices. En el caso de las entidades simples, Datastore genera automáticamente estos índices. Sin embargo, no puede generar automáticamente índices para entidades más complejas, incluidas las que tienen antecesores.
Por este motivo, debe crear manualmente un índice para las entidades visit
para que Datastore pueda realizar consultas que incluyan entidades visit
.
Para crear un índice de entidades visit
, sigue estos pasos:
Crea un archivo
index.yaml
en el directorio raíz de tu proyecto (por ejemplo,building-an-app
) y añade el siguiente índice:Despliega tus índices
index.yaml
en Datastore ejecutando el siguiente comando y siguiendo las indicaciones:gcloud datastore indexes create index.yaml
Datastore puede tardar un tiempo en crear los índices. Si creas índices antes de desplegar tu servicio web en App Engine, podrás hacer pruebas locales con esos índices y evitarás excepciones que puedan producirse en consultas que requieran un índice que aún esté en proceso de creación.
Para obtener más información sobre cómo crear índices de Datastore, consulta Configurar índices de Datastore.
Probar un servicio web
Prueba tu servicio web ejecutándolo de forma local en un entorno virtual:
Ejecuta el siguiente comando en el directorio principal de tu proyecto para ejecutar el servicio web. Si no has configurado un entorno virtual para las pruebas locales, consulta el artículo sobre cómo probar tu servicio web.
python main.py
Introduce la siguiente dirección en tu navegador web para ver tu servicio web:
http://localhost:8080
Desplegar un servicio web
Ahora que Datastore funciona de forma local, puedes volver a desplegar tu servicio web en App Engine.
Ejecuta el siguiente comando desde el directorio raíz de tu proyecto, donde se encuentra el archivo app.yaml
:
gcloud app deploy
Todo el tráfico se dirige automáticamente a la nueva versión que has implementado.
Para obtener más información sobre cómo gestionar versiones, consulta el artículo Gestionar servicios y versiones.
Ver tu servicio
Para iniciar rápidamente tu navegador y acceder a tu servicio web en https://PROJECT_ID.REGION_ID.r.appspot.com
, ejecuta el siguiente comando:
gcloud app browse
Pasos siguientes
¡Enhorabuena! Has creado correctamente un servicio web que usa el almacenamiento de datos de Datastore y la autenticación de Firebase para proporcionar a los usuarios autenticados una página web personalizada.
Ahora puedes hacer limpieza cerrando, desactivando o inhabilitando la facturación de tu proyecto.