Questa guida rapida mostra come configurare Cloud Firestore, aggiungere dati e poi utilizzare le operazioni di base o le operazioni di pipeline per eseguire query sui dati appena aggiunti nella console Firebase utilizzando le librerie client server per Java, Node.js e Python.
Utilizza queste librerie client per configurare ambienti server con privilegi e accesso completo al tuo database.
Crea un database Cloud Firestore
Se non l'hai ancora fatto, crea un progetto Firebase: nella console Firebase, 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.
Nel riquadro a sinistra, vai a Database e spazio di archiviazione > Firestore.
Fai clic su Crea database.
Seleziona Enterprise per la modalità database.
Seleziona Firestore in modalità nativa per la modalità operativa, che supporta le operazioni Core e Pipeline.
Seleziona una località per il database.
Seleziona una modalità di avvio per Cloud Firestore Security Rules:
- Modalità di test
Ideale per iniziare a utilizzare le librerie client mobile e web, ma consente a chiunque di leggere e sovrascrivere i tuoi dati. Dopo i test, assicurati di consultare la sezione Proteggi i tuoi dati.
Per iniziare a utilizzare l'SDK per il web, le piattaforme Apple o l'SDK Android, seleziona la modalità di test.
- Modalità di produzione
Rifiuta tutte le operazioni di lettura e scrittura dei client web e su dispositivi mobili. I server delle applicazioni autenticati (Node.js, Python, Java) possono comunque accedere al database.
Il tuo set iniziale di Cloud Firestore Security Rules verrà applicato al database Cloud Firestore predefinito. Se crei più database per il tuo progetto, puoi eseguire il deployment di Cloud Firestore Security Rules per ogni database.
Fai clic su Crea.
Quando abiliti Cloud Firestore, viene abilitata anche l'API in Gestione API Cloud.
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 appropriate 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 appropriate nel tuo ambiente.
Java
- Aggiungi l'SDK Firebase Admin alla tua app:
-
Utilizzo di Gradle:
implementation 'com.google.firebase:firebase-admin:9.11.0'
-
Utilizzo di Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.11.0</version> </dependency>
-
Utilizzo di Gradle:
- Segui le istruzioni riportate di seguito per inizializzare Cloud Firestore con le credenziali appropriate nel tuo ambiente.
Inizializza Cloud Firestore
Inizializza un'istanza di Cloud Firestore:
Node.js
L'SDK Cloud Firestore viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializza l'SDK Admin.-
Inizializza su Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Inizializza 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();
-
Inizializza sul tuo server
Per utilizzare l'SDK Firebase Admin sul tuo server (o in qualsiasi altro ambiente Node.js), utilizza un service account. Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON. Poi 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'SDK Cloud Firestore viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializza 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, puoi anche utilizzare 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 service account.
Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON. Poi 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'SDK Cloud Firestore viene inizializzato in modi diversi a seconda dell'ambiente. Di seguito sono riportati i metodi più comuni. Per un riferimento completo, consulta Inizializza 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 service account.
Vai a IAM e amministrazione > Account di servizio nella console Google Cloud. Genera una nuova chiave privata e salva il file JSON. Poi 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();
Aggiungi 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
Leggi 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
Leggi i dati utilizzando le operazioni della pipeline
Ora puoi confrontare l'esperienza di query di Pipeline con l'esperienza di query di Core.
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 le tue conoscenze sulle operazioni di Core e Pipeline con i seguenti argomenti:
- Assicurati di conoscere le differenze tra le operazioni Core e Pipeline.
- Scopri di più sulle query con le operazioni di base
- Scopri di più sulle query con le operazioni della pipeline.