Questa guida rapida mostra come configurare Cloud Firestore, aggiungere dati e poi utilizzare le operazioni di base o le operazioni della pipeline per eseguire query sui dati appena aggiunti nella Firebase console utilizzando le librerie client server per Java, Node.js e Python.
Utilizza queste librerie client per configurare ambienti server con privilegi con accesso completo al tuo database.
Creare un database Cloud Firestore
Se non l'hai ancora fatto, crea un progetto Firebase: nella Firebase console, fai clic su Aggiungi progetto, quindi segui le istruzioni sullo schermo per creare un progetto Firebase o per aggiungere i servizi Firebase a un progetto Google Cloud esistente.
Apri il progetto nella console Firebase. Nel riquadro a sinistra, espandi Crea e seleziona Database Firestore.
Fai clic su Crea database.
Seleziona Enterprise per la modalità database.
Seleziona Firestore in modalità nativa per la modalità di funzionamento, che supporta le operazioni di base e le operazioni della pipeline.
Seleziona una località per il database.
Seleziona una modalità di avvio per i tuoi Cloud Firestore Security Rules:
- Modalità di prova
Ideale per iniziare a utilizzare le librerie client web e su dispositivi mobili, ma consente a chiunque di leggere e sovrascrivere i dati. Dopo il test, assicurati di esaminare la sezione Proteggere i dati.
Per iniziare a utilizzare l'SDK web, per le piattaforme Apple o per l'SDK Android, seleziona la modalità di prova.
- Modalità di produzione
Nega tutte le letture e le scritture da client web e su dispositivi mobili. I server delle applicazioni autenticati (Node.js, Python, Java) possono comunque accedere al database.
Il set iniziale di Cloud Firestore Security Rules si applicherà al database Cloud Firestore predefinito. Se crei più database per il tuo progetto, puoi implementare Cloud Firestore Security Rules per ogni database.
Fai clic su Crea.
Quando abiliti Cloud Firestore, viene abilitata anche l'API in Cloud API Manager.
Configurazione dell'ambiente di sviluppo
Aggiungi le dipendenze e le librerie client necessarie alla tua app.
Node.js
-
Aggiungi l'SDK Firebase Admin alla tua app:
npm install firebase-admin --save
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali corrette nel tuo ambiente.
Python
- Aggiungi l'SDK Firebase Admin alla tua app Python:
pip install --upgrade firebase-admin
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali corrette nel tuo ambiente.
Java
- Aggiungi l'SDK Firebase Admin alla tua app:
-
Utilizzo di Gradle:
implementation 'com.google.firebase:firebase-admin:9.8.0'
-
Utilizzo di Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.8.0</version> </dependency>
-
Utilizzo di Gradle:
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali corrette nel tuo ambiente.
Inizializzare Cloud Firestore
Inizializza un'istanza di Cloud Firestore:
Node.js
L'Cloud Firestore SDK viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare l'SDK Admin.-
Inizializzare su Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Inizializzare su Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Inizializzare sul tuo server
Per utilizzare l'SDK Firebase Admin sul tuo server (o su qualsiasi altro ambiente Node.js), utilizza un account di servizio. Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON. Quindi utilizza il file per inizializzare l'SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Python
L'Cloud Firestore SDK viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare l'SDK Admin.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Per inizializzare l'SDK è possibile utilizzare anche una credenziale predefinita dell'applicazione esistente.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio.
Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON file. Quindi utilizza il file per inizializzare l'SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Java
L'Cloud Firestore SDK viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializzare l'SDK Admin.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Per utilizzare l'SDK Firebase Admin sul tuo server, utilizza un account di servizio.
Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON file. Quindi utilizza il file per inizializzare l'SDK:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
Aggiungere dati utilizzando le operazioni di base
Per esplorare le operazioni di base e le operazioni della pipeline per l'esecuzione di query sui dati, aggiungi dati al database utilizzando le operazioni di base.
Cloud Firestore archivia i dati in documenti, che vengono archiviati in raccolte. Cloud Firestore crea raccolte e documenti in modo implicito la prima volta che aggiungi dati al documento. Non è necessario creare esplicitamente raccolte o documenti.
Crea una nuova raccolta e un documento utilizzando il seguente codice di esempio.
Node.js
Java
Python
Leggere i dati utilizzando le operazioni di base
Utilizza il visualizzatore di dati nella Console Firebase per verificare rapidamente di aver aggiunto dati a Cloud Firestore.
Puoi anche utilizzare il metodo "get" per recuperare l'intera raccolta.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Leggere i dati utilizzando le operazioni della pipeline
Ora puoi confrontare l'esperienza di query della pipeline con l'esperienza di query di base.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
Passaggi successivi
Approfondisci la tua conoscenza delle operazioni di base e delle operazioni della pipeline con i seguenti argomenti:
- Assicurati di conoscere le differenze tra le operazioni di base e le operazioni della pipeline
- Scopri di più sull'esecuzione di query con le operazioni di base
- Scopri di più sull'esecuzione di query con le operazioni della pipeline.