In dieser Kurzanleitung erfahren Sie, wie Sie die Firestore Enterprise-Version einrichten, Daten hinzufügen und dann entweder Core- oder Pipeline-Vorgänge verwenden, um die gerade hinzugefügten Daten in der Firebase Console abzufragen.
Cloud Firestore unterstützt mobile oder Web-SDKs und Server-Clientbibliotheken:
Cloud Firestore unterstützt SDKs für Android, iOS, das Web und mehr. In Kombination mit Cloud Firestore Security Rules und Firebase Authentication unterstützen die SDKs für Mobilgeräte und das Web serverlose Anwendungsarchitekturen, bei denen Clients direkt mit Ihrer Cloud Firestore-Datenbank verbunden werden.
Cloud Firestore unterstützt Server-Clientbibliotheken für Java, Node.js und Python. Verwenden Sie diese Clientbibliotheken, um privilegierte Serverumgebungen mit vollem Zugriff auf Ihre Datenbank einzurichten. Weitere Informationen zu diesen Bibliotheken finden Sie in der Kurzanleitung für Server-Clientbibliotheken.
KI-Prompt für KI-Unterstützung
Wenn Sie KI-Unterstützung wünschen, kopieren Sie den Prompt unten in Ihren KI-Coding-Agenten (z. B. Gemini in Android Studio, Antigravity, Claude Code, Codex und Cursor). Sie können den Prompt anpassen und mit Ihrem Agenten iterieren. Ausführliche Informationen zur Installation finden Sie unter Firebase-Agenten-Skills.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase for the backend of my app. Set up Firestore database in **Enterprise edition**. Help me to choose the best location for my database instance.
Firestore Enterprise-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 zu einem vorhandenen Google Cloud-Projekt hinzuzufügen.
Gehen Sie im linken Bereich zu Datenbanken und Speicher > Firestore.
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ähle einen Startmodus für dein Cloud Firestore Security Rules aus:
- Testmodus
Gut für den Einstieg in die mobilen und Web-Clientbibliotheken, aber jeder kann Ihre Daten lesen und überschreiben. Lesen Sie nach dem Testen den Abschnitt Daten schützen.
Wählen Sie den Testmodus aus, um mit dem Web, Apple-Plattformen oder dem Android SDK zu beginnen.
- Produktionsmodus
Verweigert alle Lese- und Schreibvorgänge von Mobil- und Webclients. Ihre authentifizierten Anwendungsserver (Python) können weiterhin auf Ihre Datenbank zugreifen.
Ihre anfänglichen Cloud Firestore Security Rules gelten für Ihre Standarddatenbank Cloud Firestore. 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 die Firestore Enterprise-Version aktivieren, wird die API auch im Cloud API Manager aktiviert.
Entwicklungsumgebung einrichten
Fügen Sie Ihrer Anwendung die erforderlichen Abhängigkeiten und Clientbibliotheken hinzu.
Web
- Folgen Sie der Anleitung, um Firebase zu Ihrer Web-App hinzuzufügen.
-
Das Cloud Firestore SDK ist als npm-Paket verfügbar.
Sie müssen sowohl Firebase als auch Cloud Firestore importieren.npm install firebase@13.0.0 --save
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Folgen Sie der Anleitung, um Firebase zu Ihrer Apple-App hinzuzufügen.
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Öffnen Sie Ihr App-Projekt und gehen Sie in Xcode zu File > Swift Packages > Add Package Dependency (Datei > Swift-Pakete > Paketabhängigkeit hinzufügen).
- Fügen Sie bei entsprechender Aufforderung das Firebase Apple Platforms SDK-Repository hinzu:
- Wählen Sie die Firestore-Bibliothek aus.
- Wenn Sie fertig, beginnt Xcode automatisch, Ihre Abhängigkeiten im Hintergrund aufzulösen und herunterzuladen.
https://github.com/firebase/firebase-ios-sdk
Android
- Folgen Sie der Anleitung unter Firebase zu meiner Android-Anwendung hinzufügen.
- Deklarieren Sie mit der Firebase Android BoM die Abhängigkeit für die Cloud Firestore-Bibliothek für Android in der Gradle-Datei Ihres Moduls (auf App-Ebene) (normalerweise
app/build.gradle.ktsoderapp/build.gradle).dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Declare the dependency for the Cloud Firestore library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore") }
Mit der Firebase Android BoM haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne Verwendung der BoM deklarieren
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zur Verwaltung der Bibliotheksversionen zu verwenden. So wird sichergestellt, dass alle Versionen kompatibel sind.
dependencies { // Declare the dependency for the Cloud Firestore library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-firestore:27.0.0") }
Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Seit dem Release im Oktober 2023 können sowohl Kotlin- als auch Java-Entwickler das Hauptbibliotheksmodul verwenden. Weitere Informationen finden Sie in den FAQs zu dieser Initiative.
Cloud Firestore initialisieren
Initialisieren Sie eine Instanz von Cloud Firestore:
Web
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; // TODO: Replace the following with your app's Firebase project configuration // See: https://support.google.com/firebase/answer/7015592 const firebaseConfig = { FIREBASE_CONFIGURATION }; // Initialize Firebase const app = initializeApp(firebaseConfig); // When initializing Firestore, remember to use the name of the database you created earlier: const db = initializeFirestore(app, {}, 'your-new-enterprise-database');
Ersetzen Sie FIREBASE_CONFIGURATION durch die firebaseConfig Ihrer Webanwendung.
Informationen zum Speichern von Daten, wenn das Gerät die Verbindung verliert, finden Sie in der Dokumentation Offlinedaten aktivieren.
Swift
import FirebaseCore import FirebaseFirestore FirebaseApp.configure() // When initializing Firestore, remember to use the name of the database you created earlier: let db = Firestore.firestore(database: "your-new-enterprise-database")
Kotlin
// Access a Cloud Firestore instance from your Activity // When initializing Firestore, remember to use the name of the database you created earlier: val firestore = FirebaseFirestore.getInstance("your-new-enterprise-database")
Java
// Access a Cloud Firestore instance from your Activity // When initializing Firestore, remember to use the name of the database you created earlier: FirebaseFirestore firestore = FirebaseFirestore.getInstance("your-new-enterprise-database");
Daten mit Core-Vorgängen hinzufügen
Wenn Sie Core- und Pipeline-Vorgänge zum Abfragen von Daten kennenlernen möchten, fügen Sie Ihrer Datenbank mithilfe von Core-Vorgängen Daten hinzu.
Cloud Firestore speichert Daten in Dokumenten, die in Sammlungen gespeichert werden. Cloud Firestore erstellt Sammlungen und Dokumente implizit, wenn Sie dem Dokument zum ersten Mal Daten hinzufügen. Sie müssen Sammlungen oder Dokumente nicht explizit erstellen.
Mit dem folgenden Beispielcode können Sie eine neue Sammlung und ein Dokument erstellen.
Web
import { collection, addDoc } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Ada", last: "Lovelace", born: 1815 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
db.collection("users").add({ first: "Ada", last: "Lovelace", born: 1815 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a new document with a generated ID do { let ref = try await db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Kotlin
// Create a new user with a first and last name val user = hashMapOf( "first" to "Ada", "last" to "Lovelace", "born" to 1815, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Ada"); user.put("last", "Lovelace"); user.put("born", 1815); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Fügen Sie jetzt der Sammlung users ein weiteres Dokument hinzu. Beachten Sie, dass dieses Dokument ein Schlüssel/Wert-Paar (zweiter Vorname) enthält, das im ersten Dokument nicht auftaucht. Dokumente in einer Sammlung können unterschiedliche Informationen enthalten.
Web
// Add a second document with a generated ID. import { addDoc, collection } from "firebase/firestore"; try { const docRef = await addDoc(collection(db, "users"), { first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }); console.log("Document written with ID: ", docRef.id); } catch (e) { console.error("Error adding document: ", e); }
Web
// Add a second document with a generated ID. db.collection("users").add({ first: "Alan", middle: "Mathison", last: "Turing", born: 1912 }) .then((docRef) => { console.log("Document written with ID: ", docRef.id); }) .catch((error) => { console.error("Error adding document: ", error); });
Swift
// Add a second document with a generated ID. do { let ref = try await db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) print("Document added with ID: \(ref.documentID)") } catch { print("Error adding document: \(error)") }
Kotlin
// Create a new user with a first, middle, and last name val user = hashMapOf( "first" to "Alan", "middle" to "Mathison", "last" to "Turing", "born" to 1912, ) // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener { documentReference -> Log.d(TAG, "DocumentSnapshot added with ID: ${documentReference.id}") } .addOnFailureListener { e -> Log.w(TAG, "Error adding document", e) }
Java
// Create a new user with a first, middle, and last name Map<String, Object> user = new HashMap<>(); user.put("first", "Alan"); user.put("middle", "Mathison"); user.put("last", "Turing"); user.put("born", 1912); // Add a new document with a generated ID db.collection("users") .add(user) .addOnSuccessListener(new OnSuccessListener<DocumentReference>() { @Override public void onSuccess(DocumentReference documentReference) { Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "Error adding document", e); } });
Daten mit Core-Vorgängen lesen
Mit dem Daten-Viewer in der Firebase Console können Sie schnell prüfen, ob Sie Daten zu Cloud Firestore hinzugefügt haben.
Sie können auch die Methode „get“ verwenden, um die gesamte Sammlung abzurufen.
Web
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(doc.id, "=>", doc.data()); });
Web
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(doc.id, "=>", doc.data()); }); });
Swift
do { let snapshot = try await db.collection("users").getDocuments() for document in snapshot.documents { print("\(document.documentID) => \(document.data())") } } catch { print("Error getting documents: \(error)") }
Kotlin
db.collection("users") .get() .addOnSuccessListener { result -> for (document in result) { Log.d(TAG, "${document.id} => ${document.data}") } } .addOnFailureListener { exception -> Log.w(TAG, "Error getting documents.", exception) }
Java
db.collection("users") .get() .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() { @Override public void onComplete(@NonNull Task<QuerySnapshot> task) { if (task.isSuccessful()) { for (QueryDocumentSnapshot document : task.getResult()) { Log.d(TAG, document.getId() + " => " + document.getData()); } } else { Log.w(TAG, "Error getting documents.", task.getException()); } } });
Daten mit Pipelinevorgängen lesen
Jetzt können Sie die Pipeline-Abfrage mit der Core-Abfrage vergleichen.
Web
// The import/require of "firebase/firestore/pipelines" has a side-effect // of extending the Firestore class with the `.pipeline()` method. // Without this import/require, you will not be able to create a Pipeline. // import { execute } from "firebase/firestore/pipelines"; const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await execute(readDataPipeline); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Swift
do { // Initialize a Firestore Pipeline instance and specify the "users" collection as the // input stage. let snapshot = try await db.pipeline() .collection("users") .execute() // Execute the pipeline to retrieve documents. // Iterate through the documents in the pipeline results, similar to a regular query // snapshot. for result in snapshot.results { print("\(result.id ?? "no ID") => \(result.data)") } } catch { print("Error getting documents with pipeline: \(error)") }
Kotlin
val readDataPipeline = db.pipeline() .collection("users") // Execute the pipeline and handle the result readDataPipeline.execute() .addOnSuccessListener { result -> for (document in result) { println("${document.getId()} => ${document.getData()}") } } .addOnFailureListener { exception -> println("Error getting documents: $exception") }
Java
Pipeline readDataPipeline = db.pipeline() .collection("users"); readDataPipeline.execute() .addOnSuccessListener(new OnSuccessListener<Pipeline.Snapshot>() { @Override public void onSuccess(Pipeline.Snapshot snapshot) { for (PipelineResult result : snapshot.getResults()) { System.out.println(result.getId() + " => " + result.getData()); } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { System.out.println("Error getting documents: " + e); } });
Daten für mobile und Web-SDKs schützen
Wenn Sie das SDK für Web-, Android- oder Apple-Plattformen verwenden, nutzen Sie Firebase Authentication und Cloud Firestore Security Rules, um Ihre Daten in Cloud Firestore zu schützen.
Hier sind einige grundlegende Regelsätze, die Sie für den Einstieg verwenden können. Sie können Ihre Sicherheitsregeln in der Firebase Console auf dem Tab Datenbanken und Speicher > Firestore > Regeln ändern.
Auth erforderlich
// Allow read/write access to a document keyed by the user's UID
service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth != null && request.auth.uid == uid;
}
}
}
Produktionsmodus
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Bevor Sie Ihre Web-, Android- oder iOS-App in der Produktion bereitstellen, sollten Sie außerdem dafür sorgen, dass nur Ihre App-Clients auf Ihre Cloud Firestore-Daten zugreifen können. Weitere Informationen finden Sie in der App Check-Dokumentation.
Wenn Sie eines der Server-SDKs verwenden, können Sie Ihre Daten in Cloud Firestore mit Identity and Access Management (IAM) schützen.
Nächste Schritte
Vertiefen Sie Ihr Wissen über Core- und Pipeline-Vorgänge mit den folgenden Themen:
- Weitere Informationen zu Abfragen mit Core-Vorgängen
- Weitere Informationen zu Abfragen mit Pipelinevorgängen
- Hier erfahren Sie, wie Sie Ihre KI-Entwicklungstools optimieren, um Aufgaben effektiver auszuführen, und wie Sie Best Practices für Cloud Firestore (z. B. das Schreiben von Cloud Firestore Security Rules) mit Firebase-Agenten-Skills anwenden.