Dieser Schnellstart zeigt Ihnen, wie Sie Cloud Firestore einrichten, Daten hinzufügen und dann die soeben hinzugefügten Daten in der Firebase-Konsole anzeigen.
Erstellen Sie eine Cloud Firestore-Datenbank
Falls noch nicht geschehen, erstellen Sie ein Firebase-Projekt: Klicken Sie in der Firebase-Konsole auf Projekt hinzufügen und befolgen Sie dann die Anweisungen auf dem Bildschirm, um ein Firebase-Projekt zu erstellen oder einem vorhandenen GCP-Projekt Firebase-Dienste hinzuzufügen.
Navigieren Sie zum Cloud Firestore- Abschnitt der Firebase-Konsole . Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Folgen Sie dem Workflow zur Datenbankerstellung.
Wählen Sie einen Startmodus für Ihre Cloud Firestore-Sicherheitsregeln aus:
- Testmodus
Gut für den Einstieg in die mobilen und Web-Client-Bibliotheken, aber jeder kann Ihre Daten lesen und überschreiben. Lesen Sie nach dem Test unbedingt den Abschnitt Sichern Sie Ihre Daten .
Um mit dem Web, den Apple-Plattformen oder dem Android SDK zu beginnen, wählen Sie den Testmodus aus.
- Gesperrter Modus
Verweigert alle Lese- und Schreibvorgänge von Mobil- und Web-Clients. Ihre authentifizierten Anwendungsserver (C#, Go, Java, Node.js, PHP, Python oder Ruby) können weiterhin auf Ihre Datenbank zugreifen.
Um mit der C#-, Go-, Java-, Node.js-, PHP-, Python- oder Ruby-Server-Clientbibliothek zu beginnen, wählen Sie den gesperrten Modus aus.
Wählen Sie einen Speicherort für Ihre Datenbank aus.
Diese Standorteinstellung ist der standardmäßige Google Cloud Platform (GCP)-Ressourcenstandort Ihres Projekts . Beachten Sie, dass dieser Standort für GCP-Dienste in Ihrem Projekt verwendet wird, für die eine Standorteinstellung erforderlich ist, insbesondere für Ihren standardmäßigen Cloud Storage- Bucket und Ihre App Engine -App (die erforderlich ist, wenn Sie Cloud Scheduler verwenden).
Wenn Sie keinen Standort auswählen können, hat Ihr Projekt bereits einen standardmäßigen GCP-Ressourcenstandort. Es wurde entweder während der Projekterstellung oder beim Einrichten eines anderen Dienstes festgelegt, der eine Standorteinstellung erfordert.
Klicken Sie auf Fertig .
Wenn Sie Cloud Firestore aktivieren, wird auch die API im Cloud API Manager aktiviert.
Richten Sie Ihre Entwicklungsumgebung ein
Fügen Sie Ihrer App die erforderlichen Abhängigkeiten und Clientbibliotheken hinzu.
Web version 8
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Web-App .
- Fügen Sie Ihrer App die Firebase- und Cloud Firestore-Bibliotheken hinzu:
<script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.10.1/firebase-firestore.js"></script>
Das Cloud Firestore SDK ist auch als npm-Paket verfügbar.npm install firebase@8.10.1 --save
Sie müssen sowohl Firebase als auch Cloud Firestore manuell anfordern.const firebase = require("firebase"); // Required for side-effects require("firebase/firestore");
Web version 9
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Web-App .
- Das Cloud Firestore SDK ist als npm-Paket verfügbar.
npm install firebase@9.17.2 --save
Sie müssen sowohl Firebase als auch Cloud Firestore importieren.import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore";
iOS+
Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Apple-App .
Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.
- Navigieren Sie in Xcode bei geöffnetem App-Projekt zu File > Swift Packages > Add Package Dependency .
- Wenn Sie dazu aufgefordert werden, fügen Sie das Firebase Apple-Plattform-SDK-Repository hinzu:
- Wählen Sie die Firestore-Bibliothek aus.
- Wenn Sie fertig sind, beginnt Xcode automatisch mit dem Auflösen und Herunterladen Ihrer Abhängigkeiten im Hintergrund.
https://github.com/firebase/firebase-ios-sdk
Kotlin+KTX
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Android-App .
- Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Cloud Firestore Android-Bibliothek in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
app/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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-ktx' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Deklarieren Sie Abhängigkeiten der Firebase-Bibliothek , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, 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-ktx:24.4.4' }
Java
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Android-App .
- Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Cloud Firestore Android-Bibliothek in Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
app/build.gradle
).dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.3') // 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' }
Durch die Verwendung der Firebase Android BoM verwendet Ihre App immer kompatible Versionen der Firebase Android-Bibliotheken.
(Alternative) Deklarieren Sie Abhängigkeiten der Firebase-Bibliothek , ohne die Stückliste zu verwenden
Wenn Sie die Firebase-Stückliste nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in ihrer Abhängigkeitszeile angeben.
Beachten Sie, dass wir bei Verwendung mehrerer Firebase-Bibliotheken in Ihrer App dringend empfehlen, die BoM zum Verwalten von Bibliotheksversionen zu verwenden, um sicherzustellen, 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:24.4.4' }
Dart
- Falls noch nicht geschehen, konfigurieren und initialisieren Sie Firebase in Ihrer Flutter-App.
- Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plugin zu installieren:
flutter pub add cloud_firestore
- Wenn Sie fertig sind, erstellen Sie Ihre Flutter-Anwendung neu:
flutter run
- Optional: Verbessern Sie die Build-Zeiten für iOS und macOS, indem Sie das vorkompilierte Framework einbeziehen.
Derzeit hängt das Firestore SDK für iOS von Code ab, dessen Erstellung in Xcode bis zu 5 Minuten dauern kann. Um die Build-Zeiten erheblich zu verkürzen, können Sie eine vorkompilierte Version verwenden, indem Sie diese Zeile zum
target 'Runner' do
in Ihrer Pod-Datei hinzufügen:target 'Runner' do pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.15.0' # ... end
Stellen Sie außerdem sicher, dass Sie CocoaPods auf 1.9.1 oder höher aktualisiert haben:
gem install cocoapods
Weitere Informationen finden Sie im Issue 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:
- Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
Python
- Fügen Sie Ihrer Python-App das Firebase Admin SDK hinzu:
pip install --upgrade firebase-admin
- Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
C++
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrem C++-Projekt .
- C++-Schnittstelle für Android.
- Gradle Abhängigkeiten. Fügen Sie Folgendes zu Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise
app/build.gradle
) 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. In ähnlicher Weise besteht die empfohlene Methode zum Abrufen der binären Abhängigkeiten darin, Folgendes zu Ihrer
CMakeLists.txt
Datei 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 Desktop-Integration finden Sie unter Hinzufügen von Firebase zu Ihrem C++-Projekt .
Einheit
- Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrem Unity-Projekt .
- Unity-Schnittstelle für Android.
- Wählen Sie Datei > Build-Einstellungen aus
- Wechseln Sie von „Plattform“ zu „Android“ und klicken Sie auf „Plattform wechseln“.
- Klicken Sie auf „Player-Einstellungen…“.
- Wählen Sie in der Hauptbenutzeroberfläche von Unity unter „Einstellungen für Android“ die Option „Veröffentlichungseinstellungen“.
- Ändern Sie im Abschnitt „Minify“ sowohl die Release- als auch die Debug-Einstellungen von „None“ auf „ProGuard“.
Aktivieren Sie beim Erstellen für Android ProGuarding, um das Android-DEX-Limit zu umgehen. Gehen Sie dazu im Unity-Editor wie folgt vor:
Node.js
- Fügen Sie Ihrer App das Firebase Admin SDK hinzu:
npm install firebase-admin --save
- Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
Gehen
- Fügen Sie Ihrer Go-App das Firebase Admin SDK hinzu:
go get firebase.google.com/go
- Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
PHP
- Die Clientbibliotheken des Cloud Firestore-Servers (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldedaten der Google-Anwendung für die Authentifizierung.
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf eine Schlüsseldatei des JSON-Dienstkontos verweist. Sie können eine Schlüsseldatei auf der Anmeldeseite der API-Konsole erstellen.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In Ihrer Produktionsumgebung müssen Sie sich nicht authentifizieren, wenn Sie Ihre Anwendung auf App Engine oder Compute Engine ausführen und dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
- Installieren und aktivieren Sie die gRPC-Erweiterung für PHP, die Sie zur Verwendung der Clientbibliothek benötigen.
- Fügen Sie Ihrer App die Cloud Firestore-PHP-Bibliothek hinzu:
composer require google/cloud-firestore
C#
- Die Clientbibliotheken des Cloud Firestore-Servers (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldedaten der Google-Anwendung für die Authentifizierung.
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf eine Schlüsseldatei des JSON-Dienstkontos verweist. Sie können eine Schlüsseldatei auf der Anmeldeseite der API-Konsole erstellen.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In Ihrer Produktionsumgebung müssen Sie sich nicht authentifizieren, wenn Sie Ihre Anwendung auf App Engine oder Compute Engine ausführen und dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
- Fügen Sie Ihrer App die Cloud Firestore C#-Bibliothek in Ihrer
.csproj
Datei hinzu:<ItemGroup> <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" /> </ItemGroup>
- Fügen Sie Ihrer
Program.cs
Datei Folgendes hinzu:using Google.Cloud.Firestore;
Rubin
- Die Clientbibliotheken des Cloud Firestore-Servers (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldedaten der Google-Anwendung für die Authentifizierung.
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
so fest, dass sie auf eine Schlüsseldatei des JSON-Dienstkontos verweist. Sie können eine Schlüsseldatei auf der Anmeldeseite der API-Konsole erstellen.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- In Ihrer Produktionsumgebung müssen Sie sich nicht authentifizieren, wenn Sie Ihre Anwendung auf App Engine oder Compute Engine ausführen und dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
- Um sich von Ihrer Entwicklungsumgebung aus zu authentifizieren, legen Sie die Umgebungsvariable
- Fügen Sie Ihrer App in Ihrem
Gemfile
die Cloud Firestore Ruby-Bibliothek hinzu:gem "google-cloud-firestore"
- Installieren Sie Abhängigkeiten von Ihrem
Gemfile
mit:bundle install
(Optional) Erstellen Sie einen Prototyp und testen Sie ihn mit der Firebase Local Emulator Suite
Bevor wir für mobile Entwickler darüber sprechen, wie Ihre App in Cloud Firestore schreibt und daraus liest, stellen wir eine Reihe von Tools vor, mit denen Sie Prototypen erstellen und Cloud Firestore-Funktionen testen können: Firebase Local Emulator Suite. Wenn Sie verschiedene Datenmodelle ausprobieren, Ihre Sicherheitsregeln optimieren oder daran arbeiten, den kostengünstigsten Weg zur Interaktion mit dem Back-End zu finden, kann es eine gute Idee sein, lokal arbeiten zu können, ohne Live-Dienste bereitzustellen.
Ein Cloud Firestore-Emulator ist Teil der Local Emulator Suite, die es Ihrer App ermöglicht, mit Ihren emulierten Datenbankinhalten und -konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, andere Datenbanken und Sicherheitsregeln) zu interagieren.
Die Verwendung des Cloud Firestore-Emulators umfasst nur wenige Schritte:
- Hinzufügen einer Codezeile zur Testkonfiguration Ihrer App, um eine Verbindung mit dem Emulator herzustellen.
- Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses
firebase emulators:start
. - Anrufe über den Prototypcode Ihrer App mit einem Cloud Firestore-Plattform-SDK wie gewohnt tätigen.
Eine ausführliche Anleitung zu Cloud Firestore und Cloud Functions ist verfügbar. Sie sollten sich auch die Einführung in die Local Emulator Suite ansehen .
Initialisieren Sie Cloud Firestore
Initialisieren Sie eine Instanz von Cloud Firestore:
Web version 9
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 firebaseConfig
Ihrer Web-App.
Informationen zum Beibehalten von Daten, wenn das Gerät seine Verbindung verliert, finden Sie in der Dokumentation zum Aktivieren von Offline-Daten .
Web version 8
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 firebaseConfig
Ihrer Web-App.
Informationen zum Beibehalten von Daten, wenn das Gerät seine Verbindung verliert, finden Sie in der Dokumentation zum Aktivieren von Offline-Daten .
Schnell
import FirebaseCore import FirebaseFirestore
FirebaseApp.configure() let db = Firestore.firestore()
Ziel 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 Umgebung auf unterschiedliche Weise initialisiert. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz finden Sie unter Initialize the 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();initialisieren
Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .
Gehen Sie in der Google Cloud-Konsole zu IAM & Verwaltung > Dienstkonten . Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie dann die Datei, 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();
Python
Das Cloud Firestore SDK wird je nach Umgebung auf unterschiedliche Weise initialisiert. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz finden Sie unter Initialize the Admin SDK .import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()initialisieren
Eine vorhandene Standardanmeldeinformation einer Anwendung kann auch verwendet werden, um das SDK zu initialisieren.
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()
Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .
Gehen Sie in der Google Cloud-Konsole zu IAM & Verwaltung > Dienstkonten . Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie dann die Datei, 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()
Python
Das Cloud Firestore SDK wird je nach Umgebung auf unterschiedliche Weise initialisiert. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz finden Sie unter Initialize the Admin SDK .import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()initialisieren
Eine vorhandene Standardanmeldeinformation einer Anwendung kann auch verwendet werden, um das SDK zu initialisieren.
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()
Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .
Gehen Sie in der Google Cloud-Konsole zu IAM & Verwaltung > Dienstkonten . Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie dann die Datei, um das SDK zu initialisieren:
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 Umgebung auf unterschiedliche Weise initialisiert. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz finden Sie unter Initialize the Admin SDK .- In Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
initialisieren - In Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
initialisieren - Initialisieren Sie auf Ihrem eigenen Server
Um das Firebase Admin SDK auf Ihrem eigenen Server (oder einer anderen Node.js-Umgebung) zu verwenden, verwenden Sie ein Dienstkonto . Gehen Sie in der Google Cloud-Konsole zu IAM & Verwaltung > Dienstkonten . Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie dann die Datei, um das SDK zu initialisieren:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Gehen
Das Cloud Firestore SDK wird je nach Umgebung auf unterschiedliche Weise initialisiert. Nachfolgend sind die gängigsten Methoden aufgeführt. Eine vollständige Referenz finden Sie unter Initialize the 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()initialisieren
Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .
Gehen Sie in der Google Cloud-Konsole zu IAM & Verwaltung > Dienstkonten . Generieren Sie einen neuen privaten Schlüssel und speichern Sie die JSON-Datei. Verwenden Sie dann die Datei, um das SDK zu initialisieren:
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 .
Rubin
Daten hinzufügen
Cloud Firestore speichert Daten in Dokumenten, die 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 nicht explizit erstellen.
Erstellen Sie mithilfe des folgenden Beispielcodes eine neue Sammlung und ein Dokument.
Web version 9
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 version 8
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); });
Schnell
// Add a new document with a generated ID var ref: DocumentReference? = nil ref = db.collection("users").addDocument(data: [ "first": "Ada", "last": "Lovelace", "born": 1815 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
Ziel 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
Gehen
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#
Rubin
Fügen Sie nun ein weiteres Dokument zur users
hinzu. Beachten Sie, dass dieses Dokument ein Schlüssel-Wert-Paar (zweiter Vorname) enthält, das im ersten Dokument nicht vorkommt. Dokumente in einer Sammlung können unterschiedliche Informationssätze enthalten.
Web version 9
// 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 version 8
// 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); });
Schnell
// Add a second document with a generated ID. ref = db.collection("users").addDocument(data: [ "first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912 ]) { err in if let err = err { print("Error adding document: \(err)") } else { print("Document added with ID: \(ref!.documentID)") } }
Ziel 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
Gehen
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#
Rubin
Daten lesen
Verwenden Sie die Datenanzeige in der Firebase-Konsole , um schnell zu überprüfen, ob Sie Daten zu Cloud Firestore hinzugefügt haben.
Sie können auch die Methode „get“ verwenden, um die gesamte Sammlung abzurufen.
Web version 9
import { collection, getDocs } from "firebase/firestore"; const querySnapshot = await getDocs(collection(db, "users")); querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); });
Web version 8
db.collection("users").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { console.log(`${doc.id} => ${doc.data()}`); }); });
Schnell
db.collection("users").getDocuments() { (querySnapshot, err) in if let err = err { print("Error getting documents: \(err)") } else { for document in querySnapshot!.documents { print("\(document.documentID) => \(document.data())") } } }
Ziel 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(u'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
Gehen
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#
Rubin
Sichern Sie Ihre Daten
Wenn Sie das Web-, Android- oder Apple-Plattform-SDK verwenden, verwenden Sie die Firebase-Authentifizierung und Cloud Firestore-Sicherheitsregeln , um Ihre Daten in Cloud Firestore zu schützen.
Hier sind einige grundlegende Regelsätze, mit denen Sie beginnen können. Sie können Ihre Sicherheitsregeln auf der Registerkarte Regeln der Konsole ändern.
Authentifizierung erforderlich
// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
Gesperrter Modus
// Deny read/write access to all users under any conditions
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
Testmodus
// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
Bevor Sie Ihre Web-, Android- oder iOS-App für die Produktion bereitstellen, unternehmen Sie außerdem Schritte, um sicherzustellen, dass nur Ihre App-Clients auf Ihre Cloud Firestore-Daten zugreifen können. Siehe App Check- Dokumentation.
Wenn Sie eines der Server-SDKs verwenden, verwenden Sie Identity and Access Management (IAM) , um Ihre Daten in Cloud Firestore zu sichern.
Sehen Sie sich ein Video-Tutorial an
Ausführliche Anleitungen zu den ersten Schritten mit den mobilen Cloud Firestore-Clientbibliotheken finden Sie in einem der folgenden Video-Tutorials:
Netz
iOS+
Android
Weitere Videos finden Sie im YouTube-Kanal von Firebase .
Nächste Schritte
Vertiefen Sie Ihr Wissen mit folgenden Themen:
- Codelabs – Erfahren Sie, wie Sie Cloud Firestore in einer echten App verwenden, indem Sie dem Codelab für Android , iOS oder Web folgen.
- Datenmodell – Erfahren Sie mehr darüber, wie Daten in Cloud Firestore strukturiert sind, einschließlich hierarchischer Daten und untergeordneter Sammlungen.
- Daten hinzufügen – Erfahren Sie mehr über das Erstellen und Aktualisieren von Daten in Cloud Firestore.
- Daten abrufen – Erfahren Sie mehr darüber, wie Sie Daten abrufen.
- Einfache und zusammengesetzte Abfragen ausführen – Erfahren Sie, wie Sie einfache und zusammengesetzte Abfragen ausführen.
- Abfragen ordnen und einschränken Erfahren Sie, wie Sie die von Ihren Abfragen zurückgegebenen Daten ordnen und einschränken.