ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r
è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Utilizza informazioni utente autenticate per archiviare e recuperare dati specifici dell'utente e personalizzare l'esperienza di ogni utente con il tuo servizio web.
In un passaggio precedente, hai aggiornato il servizio web in modo da visualizzare le ultime dieci richieste di tutti gli utenti. In questo passaggio, utilizzerai informazioni utente autenticate per aggiornare il servizio web in modo che la pagina visualizzi solo un elenco delle ultime dieci richieste effettuate dall'utente attualmente autenticato.
Prima di iniziare
Se hai completato tutti i passaggi precedenti di questa guida, salta questa sezione. In caso contrario, completa una delle seguenti operazioni:
Inizia da Creazione di un'app Python 3 e completa tutti i passaggi precedenti.
Se hai già un progetto Google Cloud, puoi continuare scaricando una copia del servizio web e aggiungendo Firebase:
Scarica il repository di applicazioni di esempio utilizzando Git:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
In alternativa, puoi scaricare l'esempio come file ZIP ed estrarlo.
Vai alla directory che contiene una copia dei file del passaggio precedente:
cd python-docs-samples/appengine/standard_python3/building-an-app/building-an-app-3
Aggiungi Firebase al servizio web e al progetto Google Cloud.
Archiviazione e recupero di dati specifici dell'utente
Puoi indicare che i dati sono connessi a un determinato utente utilizzando Firestore nei predecessori in modalità Datastore (Datastore), che consentono di organizzare i dati del datastore in modo gerarchico.
A tale scopo, completa i seguenti passaggi:
Aggiorna i metodi
store_time
efetch_time
per utilizzare i predecessori Datastore per l'archiviazione e il recupero delle entitàvisit
:Ogni entità
visit
ora ha un predecessore a cui è connessa. Questi predecessori sono entità Datastore che rappresentano singoli utenti autenticati. La chiave di ogni predecessore include il kind diUser
e un ID personalizzato, che è l'indirizzo email dell'utente autenticato. Puoi utilizzare la chiave predecessore per eseguire query sul database solo per gli orari associati a un utente specifico.Aggiorna la chiamata al metodo
store_times
nel metodoroot
e spostala all'interno della condizione condizionaleid_token
in modo che venga eseguita solo se il server ha autenticato un utente:
Configurazione degli indici
Datastore esegue query in base agli indici. Per entità semplici,
Datastore genera automaticamente questi indici. Tuttavia, non può generare automaticamente indici per entità più complicate, incluse quelle con predecessori.
Per questo motivo, devi creare manualmente un indice per le entità visit
in modo che Datastore possa eseguire query che coinvolgono le entità visit
.
Per creare un indice per le entità visit
, completa i seguenti passaggi:
Crea un file
index.yaml
nella directory radice del progetto, ad esempiobuilding-an-app
, e aggiungi il seguente indice:Esegui il deployment degli indici
index.yaml
in Datastore eseguendo il comando seguente e seguendo le istruzioni:gcloud datastore indexes create index.yaml
La creazione degli indici da parte di Datastore può richiedere un po' di tempo. La creazione di indici prima di eseguire il deployment del servizio web in App Engine ti consente di eseguire test in locale utilizzando questi indici e impedisce le eccezioni che potrebbero verificarsi per le query che richiedono un indice ancora in fase di creazione.
Per ulteriori informazioni sulla creazione degli indici Datastore, consulta Configurazione degli indici Datastore.
Test del servizio web
Testa il tuo servizio web eseguendolo localmente in un ambiente virtuale:
Esegui questo comando nella directory principale del tuo progetto per eseguire il servizio web. Se non hai configurato un ambiente virtuale per i test locali, consulta Test del servizio web.
python main.py
Per visualizzare il servizio web, inserisci il seguente indirizzo nel browser web:
http://localhost:8080
Deployment del servizio web
Ora che Datastore funziona in locale, puoi eseguire nuovamente il deployment del servizio web in App Engine.
Esegui questo comando dalla directory radice del progetto, dove si trova il file app.yaml
:
gcloud app deploy
Tutto il traffico viene instradato automaticamente alla nuova versione di cui hai eseguito il deployment.
Per ulteriori informazioni sulla gestione delle versioni, vedi Gestione di servizi e versioni.
Visualizzazione del servizio
Per avviare rapidamente il browser e accedere al tuo servizio web all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com
, esegui questo comando:
gcloud app browse
Passaggi successivi
Complimenti! Hai creato un servizio web che utilizza l'archiviazione dei dati di Datastore e l'autenticazione Firebase per fornire agli utenti autenticati una pagina web personalizzata.
Ora puoi eseguire la pulizia arrestando, disattivando o disattivando la fatturazione per il tuo progetto.