In dieser Kurzanleitung wird gezeigt, wie Sie Cloud Firestore einrichten, Daten hinzufügen und dann entweder Core-Vorgänge oder Pipelinevorgänge verwenden, um die Daten abzufragen, die Sie gerade in der Firebase Console hinzugefügt haben. Dazu verwenden Sie Server-Clientbibliotheken für Java, Node.js und Python.
Mit diesen Clientbibliotheken können Sie privilegierte Serverumgebungen mit vollem Zugriff auf Ihre Datenbank einrichten.
Cloud Firestore-Datenbank erstellen
Falls noch nicht geschehen, erstellen Sie ein Firebase-Projekt: Klicken Sie in der Firebase Console auf Projekt hinzufügen und folgen Sie der Anleitung auf dem Bildschirm, um ein Firebase-Projekt zu erstellen oder Firebase-Dienste für ein vorhandenes Google Cloud-Projekt hinzuzufügen.
Öffnen Sie Ihr Projekt in der Firebase-Konsole. Maximieren Sie im linken Bereich Build und wählen Sie dann Firestore-Datenbank aus.
Klicken Sie auf Datenbank erstellen.
Wählen Sie als Datenbankmodus Enterprise aus.
Wählen Sie Firestore im nativen Modus als Betriebsmodus aus, der Core- und Pipeline-Vorgänge unterstützt.
Wählen Sie einen Speicherort für Ihre Datenbank aus.
Wählen Sie einen Startmodus für Ihr Cloud Firestore Security Rules aus:
- Testmodus
Gut für die ersten Schritte mit den Mobil- und Web-Clientbibliotheken, allerdings können Ihre Daten von beliebigen Personen gelesen und überschrieben werden. Prüfen Sie nach dem Test den Abschnitt Daten schützen.
Wenn Sie das Web-, Apple-Plattform- oder Android SDK verwenden möchten, wählen Sie den Testmodus aus.
- Produktionsmodus
Verweigert alle Lese- und Schreibvorgänge von Mobil- und Webclients. Ihre authentifizierten Anwendungsserver (Node.js, Python, Java) können weiterhin auf Ihre Datenbank zugreifen.
Ihre erste Gruppe von Cloud Firestore Security Rules wird auf Ihre Standarddatenbank Cloud Firestore angewendet. Wenn Sie mehrere Datenbanken für Ihr Projekt erstellen, können Sie Cloud Firestore Security Rules für jede Datenbank bereitstellen.
Klicken Sie auf Erstellen.
Wenn Sie Cloud Firestore aktivieren, wird auch die API im Cloud API Manager aktiviert.
Entwicklungsumgebung einrichten
Fügen Sie Ihrer Anwendung die erforderlichen Abhängigkeiten und Clientbibliotheken hinzu.
Node.js
-
Fügen Sie Ihrer App das Firebase Admin SDK hinzu:
npm install firebase-admin --save
- Folgen Sie der Anleitung unten, um Cloud Firestore mit den richtigen Anmeldedaten in Ihrer Umgebung zu initialisieren.
Python
- Fügen Sie Ihrer Python-App das Firebase Admin SDK hinzu:
pip install --upgrade firebase-admin
- Folgen Sie der Anleitung unten, um Cloud Firestore mit den richtigen Anmeldedaten in Ihrer Umgebung zu initialisieren.
Java
- Fügen Sie das Firebase Admin SDK in Ihre App ein:
- Mit Gradle:
implementation 'com.google.firebase:firebase-admin:9.7.1'
-
Mit Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.7.1</version> </dependency>
- Mit Gradle:
- Folgen Sie der Anleitung unten, um Cloud Firestore mit den richtigen Anmeldedaten in Ihrer Umgebung zu initialisieren.
Cloud Firestore initialisieren
Initialisieren Sie eine Instanz von Cloud Firestore:
Node.js
Das Cloud Firestore SDK wird je nach Umgebung unterschiedlich initialisiert. Nachfolgend finden Sie die gängigsten Methoden. Eine vollständige Referenz finden Sie unter Admin SDK initialisieren.-
Auf Cloud Functions initialisieren
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Auf Google Cloud initialisieren
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
Auf Ihrem eigenen Server initialisieren
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server (oder in einer anderen Node.js-Umgebung) verwenden möchten, benötigen Sie ein Dienstkonto. Rufen Sie in der Google Cloud Console IAM & Verwaltung > Dienstkonten auf. Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie die Datei dann, um das SDK zu initialisieren:
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
Das Cloud Firestore SDK wird je nach Umgebung unterschiedlich initialisiert. Nachfolgend finden Sie die gängigsten Methoden. Eine vollständige Referenz finden Sie unter Admin SDK initialisieren.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Zum Initialisieren des SDK kann auch eine vorhandene Standardanmeldung für Anwendungen verwendet werden.
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()
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server verwenden möchten, benötigen Sie ein Dienstkonto.
Rufen Sie in der Google Cloud Console IAM & Verwaltung > Dienstkonten auf. Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie die Datei dann, um das SDK zu initialisieren:
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
Das Cloud Firestore SDK wird je nach Umgebung unterschiedlich initialisiert. Nachfolgend finden Sie die gängigsten Methoden. Eine vollständige Referenz finden Sie unter Admin SDK initialisieren.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();
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server verwenden möchten, benötigen Sie ein Dienstkonto.
Rufen Sie in der Google Cloud Console IAM & Verwaltung > Dienstkonten auf. Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie die Datei dann, um das SDK zu initialisieren:
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();
Daten mit Core-Vorgängen hinzufügen
Wenn Sie Core-Vorgänge und Pipeline-Vorgänge zum Abfragen von Daten untersuchen möchten, fügen Sie Ihrer Datenbank mit Core-Vorgängen Daten hinzu.
In Cloud Firestore werden Daten in Dokumenten gespeichert, die wiederum in Sammlungen gespeichert sind. Cloud Firestore erstellt Sammlungen und Dokumente implizit, wenn Sie dem Dokument zum ersten Mal Daten hinzufügen. Sie müssen Sammlungen oder Dokumente also nicht explizit anlegen.
Mit dem folgenden Beispielcode können Sie eine neue Sammlung und ein Dokument erstellen.
Node.js
Java
Python
Daten mit Core-Vorgängen lesen
Verwenden Sie die Datenansicht in der Firebase Console, um schnell zu prüfen, ob Sie Daten zu Cloud Firestore hinzugefügt haben.
Sie können auch die Methode „get“ verwenden, um die gesamte Sammlung abzurufen.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
Daten mit Pipeline-Vorgängen lesen
Sie können jetzt die Pipeline-Abfrage mit der Core-Abfrage vergleichen.
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"); } });
Nächste Schritte
Vertiefen Sie Ihr Wissen über Core- und Pipeline-Vorgänge mit den folgenden Themen:
- Machen Sie sich mit den Unterschieden zwischen den Core- und Pipeline-Vorgängen vertraut.
- Weitere Informationen zum Abfragen mit Core-Vorgängen
- Weitere Informationen zum Abfragen mit Pipelinevorgängen