In dieser Kurzanleitung erfahren Sie, wie Sie Cloud Firestore einrichten, Daten hinzufügen und die Daten, die Sie gerade in der Firebase Console hinzugefügt haben.
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 GCP-Projekt hinzuzufügen.
Gehen Sie zum Abschnitt Cloud Firestore des Firebase Console. Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Folgen Sie dem Workflow zur Datenbankerstellung.
Wähle einen Startmodus für dein Cloud Firestore Security Rules aus:
- Testmodus
Gut für den Einstieg in die Mobil- und Web-Clientbibliotheken, ermöglicht aber jedem, Ihre Daten zu lesen und zu überschreiben. Machen Sie nach dem Testen lesen Sie den Abschnitt Daten schützen.
Wählen Sie für den Einstieg im Web, auf Apple-Plattformen oder dem Android SDK den Testmodus aus.
- Sperrmodus
Alle Lese- und Schreibvorgänge über Mobil- und Webclients werden abgelehnt. Ihre authentifizierten Anwendungsserver (C#, Go, Java, Node.js, PHP, Python oder Ruby) weiterhin auf Ihre Datenbank zugreifen können.
Erste Schritte mit C#, Go, Java, Node.js, PHP, Python oder Ruby Sperrmodus auswählen.
Der ursprüngliche Satz von Cloud Firestore Security Rules wird auf die Standardeinstellung angewendet Cloud Firestore-Datenbank. Wenn Sie mehrere Datenbanken für Ihr Projekt erstellen, können Sie für jede Datenbank Cloud Firestore Security Rules bereitstellen.
Wählen Sie einen Speicherort für Ihre Datenbank aus.
Diese Standorteinstellung ist der standardmäßige Ressourcenstandort der Google Cloud Platform (GCP) für Ihr Projekt. Beachten Sie, dass dieser Speicherort für GCP-Dienste in Ihrem Projekt verwendet wird die eine Standorteinstellung erfordern, insbesondere die Standardeinstellung Cloud Storage-Bucket und Ihr App Engine-Anwendung (die erforderlich, wenn Sie Cloud Scheduler verwenden).
Wenn Sie keinen Speicherort auswählen können, verfügt Ihr Projekt bereits über einen standardmäßigen Speicherort für GCP-Ressourcen. Er wurde entweder während der Erstellung des Projekts oder beim Einrichten eines anderen Dienstes festgelegt, für den eine Speicherorteinstellung erforderlich ist.
Klicken Sie auf Fertig.
Wenn Sie Cloud Firestore aktivieren, wird auch die API im Cloud API Manager
Entwicklungsumgebung einrichten
Fügen Sie Ihrer Anwendung die erforderlichen Abhängigkeiten und Clientbibliotheken hinzu.
Web
- Folgen Sie der Anleitung unter Firebase zu meiner Webanwendung hinzufügen.
- Fügen Sie Ihrer App die Firebase- und Cloud Firestore-Bibliotheken hinzu:
Das Cloud Firestore-SDK ist auch als npm-Paket verfügbar.<script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-firestore-compat.js"></script>
Sie müssen Firebase und Cloud Firestore manuell anfordern.npm install firebase@10.13.1 --save
import firebase from "firebase/compat/app"; // Required for side-effects import "firebase/firestore";
Web
- Folgen Sie der Anleitung unter Firebase zu meiner Webanwendung hinzufügen.
-
Das Cloud Firestore-SDK ist als npm-Paket verfügbar.
Sie müssen sowohl Firebase als auch Cloud Firestore importieren.npm install firebase@10.13.1 --save
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Folgen Sie der Anleitung, um Fügen Sie Firebase zu Ihrer Apple-App hinzu.
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.
- Mit der
Firebase Android BoM
Deklarieren Sie die Abhängigkeit für die Cloud Firestore-Bibliothek für Android in
Gradle-Datei des Moduls (auf App-Ebene)
(normalerweise
app/build.gradle.kts
oderapp/build.gradle
.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // 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) Deklarieren Sie Firebase-Bibliotheksabhängigkeiten ohne den BoM
Wenn Sie sich gegen die Verwendung von Firebase BoM entscheiden, müssen Sie jedes einzelne Element angeben. Firebase-Bibliotheksversion in der Abhängigkeitszeile.
Wenn Sie mehrere Firebase-Bibliotheken in deiner App empfehlen wir dringend, BoM zur Verwaltung der Mediathek zu verwenden. Versionen, sodass 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:25.1.0") }
Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Beginnend mit der Version Oktober 2023, Sowohl Kotlin- als auch Java-Entwickler können sich auf das Hauptbibliotheksmodul (Details finden Sie in der FAQs zu dieser Initiative).
Dart
- Konfigurieren und initialisieren Sie Firebase in Ihrer Flutter-App, falls Sie das noch nicht getan haben.
- Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plug-in zu installieren:
flutter pub add cloud_firestore
- Erstellen Sie danach Ihre Flutter-Anwendung neu:
flutter run
- Optional: Optimieren Sie iOS und unter macOS-Build-Zeiten durch Hinzufügen der
vorkompiliertes Framework.
Derzeit ist das Firestore SDK for iOS von Code abhängig, der mehr als 5 Minuten in Xcode zu erstellen. Sie können die Buildzeit erheblich verkürzen, indem Sie eine vorkompilierte Version verwenden. Fügen Sie dazu diese Zeile dem
target 'Runner' do
-Block in Ihrer Podfile hinzu:target 'Runner' do use_frameworks! use_modular_headers! pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => 'IOS_SDK_VERSION' flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do inherit! :search_paths end end
Ersetzen Sie IOS_SDK_VERSION durch die Version von Firebase iOS. SDK in der
firebase_core
angegebenfirebase_sdk_version.rb
-Datei. Wenn Sie nicht die neueste Version vonfirebase_core
verwenden, suchen Sie diese Datei in Ihrem lokalen Pub-Paket-Cache (normalerweise~/.pub-cache
).Außerdem müssen Sie ein Upgrade auf CocoaPods auf Version 1.9.1 oder höher:
gem install cocoapods
Weitere Informationen finden Sie in der Ausgabe auf GitHub
Java
- Fügen Sie Ihrer App das Firebase Admin SDK hinzu:
- Mit Gradle:
compile 'com.google.firebase:firebase-admin:1.32.0'
-
Mit Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>1.32.0</version> </dependency>
- Mit Gradle:
- Folgen Sie der Anleitung unten, um Cloud Firestore zu initialisieren mit den richtigen Anmeldedaten in Ihrer Umgebung.
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 zu initialisieren mit den richtigen Anmeldedaten in Ihrer Umgebung.
C++
- Folgen Sie der Anleitung unter Firebase zu einem C++-Projekt hinzufügen.
- C++-Schnittstelle für Android.
- Gradle-Abhängigkeiten. Fügen Sie der Gradle-Datei des Moduls (auf Anwendungsebene, in der Regel
app/build.gradle
) Folgendes hinzu:android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { // earlier entries auth firestore }
- Binäre Abhängigkeiten: Die empfohlene Methode zum Abrufen der binären Abhängigkeiten besteht darin, der Datei
CMakeLists.txt
Folgendes hinzuzufügen:add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) set(firebase_libs firebase_auth firebase_firestore firebase_app) # Replace the target name below with the actual name of your target, # for example, "native-lib". target_link_libraries(${YOUR_TARGET_NAME_HERE} "${firebase_libs}")
- Informationen zum Einrichten der Desktopintegration finden Sie unter Firebase zu einem C++-Projekt hinzufügen.
Unity
- Folgen Sie der Anleitung unter Firebase zu einem Unity-Projekt hinzufügen.
- Verwenden Sie die Unity-Oberfläche, um Ihr Projekt so zu konfigurieren, dass Android-Builds komprimiert werden.
- Die Option findest du unter Player-Einstellungen > Android > Wird veröffentlicht Einstellungen > Komprimieren.
- Die Optionen können sich in verschiedenen Unity-Versionen unterscheiden. Weitere Informationen finden Sie in der offizielle Unity-Dokumentation und die Fehlerbehebungsanleitung für Firebase Unity-Build
-
Wenn die Anzahl der referenzierten Methoden nach dem Aktivieren der Reduzierung weiterhin
überschreitet das Limit, können Sie
multidex
auch hier aktivieren:-
mainTemplate.gradle
, wenn Benutzerdefinierte Gradle-Vorlage unter Player-Einstellungen aktiviert ist -
oder die
build.gradle
-Datei auf Modulebene, wenn Sie das exportierte Projekt mit Android Studio erstellen.
-
Sie müssen das Build minimieren, um die Meldung Error while merging dex archives
zu vermeiden.
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 zu initialisieren mit den richtigen Anmeldedaten in Ihrer Umgebung.
Go
- Fügen Sie Ihrer Go-App das Firebase Admin SDK hinzu:
go get firebase.google.com/go
- Folgen Sie der Anleitung unten, um Cloud Firestore zu initialisieren mit den richtigen Anmeldedaten in Ihrer Umgebung.
PHP
-
Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden für die Authentifizierung die Standardanmeldedaten für Google-Anwendungen.
-
Wenn Sie sich über Ihre Entwicklungsumgebung authentifizieren möchten, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf eine JSON-Datei mit dem Dienstkontoschlüssel verweist. Sie können eine Schlüsseldatei erstellen auf der Seite "Anmeldedaten" der API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In der Produktionsumgebung ist keine Authentifizierung erforderlich, wenn die Anwendung ausgeführt wird. in App Engine oder Compute Engine mit demselben Projekt, das Sie für Cloud Firestore verwenden. Andernfalls ein Dienstkonto einrichten.
-
Wenn Sie sich über Ihre Entwicklungsumgebung authentifizieren möchten, legen Sie die Umgebungsvariable
- Installieren und aktivieren Sie die gRPC-Erweiterung für PHP. Diese benötigen Sie für die Nutzung der Clientbibliothek.
- Fügen Sie Ihrer Anwendung die Cloud Firestore-PHP-Bibliothek hinzu:
composer require google/cloud-firestore
C#
-
Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden
Standardanmeldedaten für Google-Anwendungen
zur Authentifizierung.
-
Wenn Sie sich über Ihre Entwicklungsumgebung authentifizieren möchten, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf eine JSON-Datei mit dem Dienstkontoschlüssel verweist. Sie können eine Schlüsseldatei erstellen auf der Seite "Anmeldedaten" der API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In Ihrer Produktionsumgebung müssen Sie sich nicht authentifizieren, wenn Sie Ihre Anwendung in der App Engine oder Compute Engine mit demselben Projekt ausführen, das Sie für Cloud Firestore verwenden. Andernfalls ein Dienstkonto einrichten.
-
Wenn Sie sich über Ihre Entwicklungsumgebung authentifizieren möchten, legen Sie die Umgebungsvariable
- Fügen Sie Ihrer Anwendung in der
.csproj
-Datei die Cloud Firestore-C#-Bibliothek hinzu:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
-
Fügen Sie der Datei
Program.cs
Folgendes hinzu:using Google.Cloud.Firestore;
Ruby
-
Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden
Standardanmeldedaten für Google-Anwendungen
zur Authentifizierung.
-
Für die Authentifizierung über die Entwicklungsumgebung legen Sie den
GOOGLE_APPLICATION_CREDENTIALS
fest. um auf eine JSON-Dienstkonto-Schlüsseldatei zu verweisen. Sie können eine Schlüsseldatei erstellen auf der Seite "Anmeldedaten" der API Console.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In der Produktionsumgebung müssen Sie sich nicht authentifizieren, wenn Sie Ihre Anwendung ausführen. in App Engine oder Compute Engine mit demselben Projekt, das Sie für Cloud Firestore verwenden. Andernfalls ein Dienstkonto einrichten.
-
Für die Authentifizierung über die Entwicklungsumgebung legen Sie den
- Fügen Sie Ihrer Anwendung in der
Gemfile
die Cloud Firestore Ruby-Bibliothek hinzu:gem "google-cloud-firestore"
- Installieren Sie Abhängigkeiten aus der
Gemfile
-Datei mit folgendem Befehl:bundle install
(Optional) Mit Firebase Local Emulator Suite einen Prototyp erstellen und testen
Für App-Entwickler: Bevor Sie darüber sprechen, wie Ihre App Daten schreibt und liest von Cloud Firestore stellen wir Ihnen Tools vor, mit denen Sie einen Prototyp erstellen und die Cloud Firestore-Funktionalität testen: Firebase Local Emulator Suite. Wenn Sie verschiedene Datenmodelle ausprobieren, Ihre Sicherheitsregeln zu optimieren oder die kostengünstigste Methode zu finden, mit dem Back-End interagieren, lokal arbeiten können, ohne Live-Services sind eine gute Idee.
Ein Cloud Firestore-Emulator ist Teil der Local Emulator Suite, die ermöglicht es Ihrer App, mit dem Inhalt und der Konfiguration Ihrer emulierten Datenbank zu interagieren, sowie optional Ihre emulierten Projektressourcen (Funktionen, andere Datenbanken, und Sicherheitsregeln).
Die Verwendung des Cloud Firestore-Emulators ist ganz einfach:
- Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
- Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses
firebase emulators:start
aus. - Über den Prototypcode Ihrer App über eine Cloud Firestore-Plattform Aufrufe ausführen SDK wie gewohnt an.
Eine detaillierte Anleitung für Cloud Firestore und Cloud Functions ist verfügbar. Du solltest dir auch die Einführung zu Local Emulator Suite ansehen.
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); // Initialize Cloud Firestore and get a reference to the service const db = getFirestore(app);
Ersetzen Sie FIREBASE_CONFIGURATION durch den Wert für Ihre Webanwendung.
firebaseConfig
Wie Sie die Daten auch dann erhalten, wenn die Verbindung des Geräts unterbrochen wird, erfahren Sie in der Dokumentation Offlinedaten aktivieren.
Web
import firebase from "firebase/app"; import "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 firebase.initializeApp(firebaseConfig); // Initialize Cloud Firestore and get a reference to the service const db = firebase.firestore();
Ersetzen Sie FIREBASE_CONFIGURATION durch die firebaseConfig
Ihrer Webanwendung.
Wie Sie die Daten auch dann erhalten, wenn die Verbindung des Geräts unterbrochen wird, erfahren Sie in der Dokumentation Offlinedaten aktivieren.
Swift
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Objective-C
@import FirebaseCore; @import FirebaseFirestore; // Use Firebase library to configure APIs [FIRApp configure];
FIRFirestore *defaultFirestore = [FIRFirestore firestore];
Kotlin+KTX
// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore
Java
// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();
Dart
db = FirebaseFirestore.instance;
Java
Das Cloud Firestore-SDK wird je nach für Ihre Umgebung. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz Siehe Initialisieren des Admin SDK.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, verwenden Sie ein Dienstkonto.
Gehen Sie in der Google Cloud Console zu IAM & Verwaltung > Dienstkonten. Neuen privaten Schlüssel generieren und JSON speichern -Datei. Initialisieren Sie dann das SDK mit der Datei:
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();
Python
Das Cloud Firestore-SDK wird je nach für Ihre Umgebung. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz Siehe Initialisieren des Admin SDK.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
Das SDK kann auch mit vorhandenen Standardanmeldedaten für Anwendungen initialisiert 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, verwenden Sie ein Dienstkonto.
Gehe zu IAM und Admin > Dienstkonten in der Google Cloud Console. Neuen privaten Schlüssel generieren und JSON speichern -Datei. Initialisieren Sie dann das SDK mit dieser Datei:
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()
Python
Das Cloud Firestore-SDK wird je nach für Ihre Umgebung. Im Folgenden finden Sie die gängigsten Methoden. Eine vollständige Referenz finden Sie unter Admin SDK initialisieren.import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
Das SDK kann auch mit vorhandenen Standardanmeldedaten für Anwendungen initialisiert werden.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.client()
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server verwenden möchten, verwenden Sie ein Dienstkonto.
Gehe zu IAM und Admin > Dienstkonten in der Google Cloud Console. Neuen privaten Schlüssel generieren und JSON speichern -Datei. Initialisieren Sie dann das SDK mit dieser Datei:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
C++
// Make sure the call to `Create()` happens some time before you call Firestore::GetInstance(). App::Create(); Firestore* db = Firestore::GetInstance();
Node.js
Das Cloud Firestore-SDK wird je nach für Ihre Umgebung. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz Siehe Initialisieren des Admin SDK.-
Am Cloud Functions initialisieren
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
Am 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 dem eigenen Server initialisieren
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server oder einer anderen Node.js-Umgebung verwenden möchten, ein Dienstkonto. Klicken Sie in der Google Cloud Console auf IAM & Verwaltung > Dienstkonten. Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Initialisieren Sie dann das SDK mit dieser Datei:
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();
Go
Das Cloud Firestore-SDK wird je nach für Ihre Umgebung. Im Folgenden sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz Siehe Initialisieren des Admin SDK.import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
Wenn Sie das Firebase Admin SDK auf Ihrem eigenen Server verwenden möchten, verwenden Sie eine Dienstkonto.
Gehe zu IAM und Admin > Dienstkonten in der Google Cloud Console. Neuen privaten Schlüssel generieren und JSON speichern -Datei. Initialisieren Sie dann das SDK mit dieser Datei:
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken.
Einheit
using Firebase.Firestore; using Firebase.Extensions;
FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
C#
C#
Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken.
Ruby
Daten hinzufügen
Cloud Firestore speichert Daten in Dokumenten, die wiederum in Sammlungen gespeichert sind. Cloud Firestore erstellt implizit Sammlungen und Dokumente 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.
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)") }
Objective-C
// Add a new document with a generated ID __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Ada", @"last": @"Lovelace", @"born": @1815 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// 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); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Ada", "last": "Lovelace", "born": 1815 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
// Add a new document with a generated ID Future<DocumentReference> user_ref = db->Collection("users").Add({{"first", FieldValue::String("Ada")}, {"last", FieldValue::String("Lovelace")}, {"born", FieldValue::Integer(1815)}}); user_ref.OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken.
Einheit
DocumentReference docRef = db.Collection("users").Document("alovelace"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Ada" }, { "Last", "Lovelace" }, { "Born", 1815 }, }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the alovelace document in the users collection."); });
C#
Ruby
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)") }
Objective-C
// Add a second document with a generated ID. __block FIRDocumentReference *ref = [[self.db collectionWithPath:@"users"] addDocumentWithData:@{ @"first": @"Alan", @"middle": @"Mathison", @"last": @"Turing", @"born": @1912 } completion:^(NSError * _Nullable error) { if (error != nil) { NSLog(@"Error adding document: %@", error); } else { NSLog(@"Document added with ID: %@", ref.documentID); } }];
Kotlin+KTX
// 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); } });
Dart
// Create a new user with a first and last name final user = <String, dynamic>{ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 }; // Add a new document with a generated ID db.collection("users").add(user).then((DocumentReference doc) => print('DocumentSnapshot added with ID: ${doc.id}'));
Java
Python
Python
C++
db->Collection("users") .Add({{"first", FieldValue::String("Alan")}, {"middle", FieldValue::String("Mathison")}, {"last", FieldValue::String("Turing")}, {"born", FieldValue::Integer(1912)}}) .OnCompletion([](const Future<DocumentReference>& future) { if (future.error() == Error::kErrorOk) { std::cout << "DocumentSnapshot added with ID: " << future.result()->id() << std::endl; } else { std::cout << "Error adding document: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken.
Einheit
DocumentReference docRef = db.Collection("users").Document("aturing"); Dictionary<string, object> user = new Dictionary<string, object> { { "First", "Alan" }, { "Middle", "Mathison" }, { "Last", "Turing" }, { "Born", 1912 } }; docRef.SetAsync(user).ContinueWithOnMainThread(task => { Debug.Log("Added data to the aturing document in the users collection."); });
C#
Ruby
Daten lesen
Daten verwenden in der Firebase Console, um schnell zu überprüfen, ob du Daten zu Cloud Firestore hinzugefügt hast.
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)") }
Objective-C
[[self.db collectionWithPath:@"users"] getDocumentsWithCompletion:^(FIRQuerySnapshot * _Nullable snapshot, NSError * _Nullable error) { if (error != nil) { NSLog(@"Error getting documents: %@", error); } else { for (FIRDocumentSnapshot *document in snapshot.documents) { NSLog(@"%@ => %@", document.documentID, document.data); } } }];
Kotlin+KTX
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()); } } });
Dart
await db.collection("users").get().then((event) { for (var doc in event.docs) { print("${doc.id} => ${doc.data()}"); } });
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
C++
Future<QuerySnapshot> users = db->Collection("users").Get(); users.OnCompletion([](const Future<QuerySnapshot>& future) { if (future.error() == Error::kErrorOk) { for (const DocumentSnapshot& document : future.result()->documents()) { std::cout << document << std::endl; } } else { std::cout << "Error getting documents: " << future.error_message() << std::endl; } });
Node.js
Go
PHP
PHP
Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken.
Einheit
CollectionReference usersRef = db.Collection("users"); usersRef.GetSnapshotAsync().ContinueWithOnMainThread(task => { QuerySnapshot snapshot = task.Result; foreach (DocumentSnapshot document in snapshot.Documents) { Debug.Log(String.Format("User: {0}", document.Id)); Dictionary<string, object> documentDictionary = document.ToDictionary(); Debug.Log(String.Format("First: {0}", documentDictionary["First"])); if (documentDictionary.ContainsKey("Middle")) { Debug.Log(String.Format("Middle: {0}", documentDictionary["Middle"])); } Debug.Log(String.Format("Last: {0}", documentDictionary["Last"])); Debug.Log(String.Format("Born: {0}", documentDictionary["Born"])); } Debug.Log("Read all data from the users collection."); });
C#
Ruby
Daten schützen
Wenn Sie das SDK für Web, Android oder Apple nutzen, nutzen Sie Firebase Authentifizierung und Cloud Firestore Security Rules zum Schutz Ihrer Daten in Cloud Firestore
Hier sind einige grundlegende Regelsätze, die Sie für den Einstieg verwenden können. Sie können Ihre unter Regeln Tab von in der Konsole.
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;
}
}
}
Sperrmodus
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Führen Sie vor der Bereitstellung Ihrer Web-, Android- oder iOS-App So sorgen Sie dafür, dass nur Ihre App-Clients auf Ihre Cloud Firestore-Daten zugreifen können. Weitere Informationen finden Sie in der Dokumentation zu App Check.
Wenn Sie eines der Server-SDKs verwenden, nutzen Sie die Identitäts- und Zugriffsverwaltung (Identity and Access Management) (IAM) zum Schutz Ihrer Daten in Cloud Firestore.
Videoanleitung ansehen
Eine ausführliche Anleitung zu den ersten Schritten mit Cloud Firestore mobilen Clientbibliotheken finden Sie in den folgenden Videoanleitungen:
Web
iOS+
Android
Weitere Videos finden Sie im Firebase-YouTube-Kanal.
Weitere Informationen
Vertiefen Sie Ihr Wissen mit folgenden Themen:
- Codelabs – Lerne, Cloud Firestore in einer echten App zu verwenden, Wenn Sie das Codelab für Android, iOS oder Web:
- Datenmodell – Erfahren Sie mehr darüber, wie Daten verarbeitet werden. strukturiert in Cloud Firestore, einschließlich hierarchischer Daten und Untersammlungen.
- Daten hinzufügen – Erfahren Sie mehr über das Erstellen und Aktualisieren von Daten in Cloud Firestore.
- Daten abrufen – Erfahren Sie mehr über das Abrufen von Daten.
- Einfache und komplexe Abfragen ausführen — Erfahren Sie, wie Sie einfache und komplexe Abfragen ausführen.
- Abfragen sortieren und begrenzen Weitere Informationen zum Sortieren und begrenzen Sie die von Ihren Abfragen zurückgegebenen Daten.