Beginnen Sie mit Cloud Firestore

In dieser Schnellstartanleitung erfahren Sie, 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

  1. Wenn Sie dies noch nicht getan haben, 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 Firebase-Dienste zu einem vorhandenen GCP-Projekt hinzuzufügen.

  2. Navigieren Sie zum Abschnitt „Cloud Firestore“ der Firebase-Konsole . Sie werden aufgefordert, ein vorhandenes Firebase-Projekt auszuwählen. Befolgen Sie den Workflow zur Datenbankerstellung.

  3. Wählen Sie einen Startmodus für Ihre Cloud Firestore-Sicherheitsregeln:

    Testmodus

    Gut für den Einstieg in die Mobil- und Web-Client-Bibliotheken, ermöglicht aber jedem, Ihre Daten zu lesen und zu überschreiben. Lesen Sie nach dem Test unbedingt den Abschnitt „Sichern Sie Ihre Daten“ .

    Um mit dem Web, Apple-Plattformen oder dem Android SDK zu beginnen, wählen Sie den Testmodus.

    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.

    Ihr anfänglicher Satz an Cloud Firestore-Sicherheitsregeln gilt für Ihre Standard-Cloud Firestore-Datenbank. Wenn Sie für Ihr Projekt mehrere Datenbanken erstellen, können Sie Cloud Firestore-Sicherheitsregeln für jede Datenbank bereitstellen.

  4. Wählen Sie einen Speicherort für Ihre Datenbank.

    • 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, die eine Standorteinstellung erfordern, insbesondere Ihren Standard- Cloud Storage- Bucket und Ihre App Engine -App (die erforderlich ist, wenn Sie Cloud Scheduler verwenden).

    • Wenn Sie keinen Standort auswählen können, verfügt Ihr Projekt bereits über einen standardmäßigen GCP-Ressourcenstandort. Es wurde entweder während der Projekterstellung oder beim Einrichten eines anderen Dienstes festgelegt, der eine Standorteinstellung erfordert.

  5. 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 namespaced API

  1. Befolgen Sie die Anweisungen, um Firebase zu Ihrer Web-App hinzuzufügen .
  2. Fügen Sie Ihrer App die Bibliotheken Firebase und Cloud Firestore hinzu:
    <script src="https://www.gstatic.com/firebasejs/10.8.1/firebase-app-compat.js"></script>
    <script src="https://www.gstatic.com/firebasejs/10.8.1/firebase-firestore-compat.js"></script>
    Das Cloud Firestore SDK ist auch als npm-Paket verfügbar.
    npm install firebase@10.8.1 --save
    
    Sie müssen sowohl Firebase als auch Cloud Firestore manuell anfordern.
    import firebase from "firebase/compat/app";
    // Required for side-effects
    import "firebase/firestore";
    

Web modular API

  1. Befolgen Sie die Anweisungen, um Firebase zu Ihrer Web-App hinzuzufügen .
  2. Das Cloud Firestore SDK ist als npm-Paket verfügbar.
    npm install firebase@10.8.1 --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, um Firebase zu Ihrer Apple-App hinzuzufügen .

Verwenden Sie Swift Package Manager, um Firebase-Abhängigkeiten zu installieren und zu verwalten.

  1. Navigieren Sie in Xcode bei geöffnetem App-Projekt zu File > Swift Packages > Add Package Dependency .
  2. Wenn Sie dazu aufgefordert werden, fügen Sie das Firebase Apple Platforms SDK-Repository hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Wählen Sie die Firestore-Bibliothek.
  5. Wenn Sie fertig sind, beginnt Xcode automatisch mit der Auflösung und dem Herunterladen Ihrer Abhängigkeiten im Hintergrund.
Android
  1. Befolgen Sie die Anweisungen, um Firebase zu Ihrer Android-App hinzuzufügen .
  2. Deklarieren Sie mithilfe der Firebase Android BoM die Abhängigkeit für die Cloud Firestore-Bibliothek für Android in der Gradle-Datei Ihres Moduls (App-Ebene) (normalerweise app/build.gradle.kts oder app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.7.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: Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten der 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.10.3")
    }
    

    Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Ab der Veröffentlichung vom Oktober 2023 können sich sowohl Kotlin- als auch Java-Entwickler auf das Hauptbibliotheksmodul verlassen (Einzelheiten finden Sie in den FAQ zu dieser Initiative ).

Dart

  1. Falls noch nicht geschehen, konfigurieren und initialisieren Sie Firebase in Ihrer Flutter-App.
  2. Führen Sie im Stammverzeichnis Ihres Flutter-Projekts den folgenden Befehl aus, um das Plugin zu installieren:
    flutter pub add cloud_firestore
  3. Wenn Sie fertig sind, erstellen Sie Ihre Flutter-Anwendung neu:
    flutter run
  4. Optional: Verbessern Sie die Build-Zeiten für iOS und macOS, indem Sie das vorkompilierte Framework einbinden.

    Derzeit ist das Firestore SDK für iOS auf Code angewiesen, dessen Erstellung in Xcode mehr als 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 Poddatei hinzufügen:

    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 des Firebase iOS SDK, die in der Datei firebase_sdk_version.rb von firebase_core angegeben ist. Wenn Sie nicht die neueste Version von firebase_core verwenden, suchen Sie in Ihrem lokalen Pub-Paketcache nach dieser Datei (normalerweise ~/.pub-cache ).

    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
  1. Fügen Sie das Firebase Admin SDK zu Ihrer App hinzu:
    • Verwenden von 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>
           
  2. Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
Python
  1. Fügen Sie das Firebase Admin SDK zu Ihrer Python-App hinzu:
    pip install --upgrade firebase-admin
  2. Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
C++
  1. Befolgen Sie die Anweisungen, um Firebase zu Ihrem C++-Projekt hinzuzufügen .
  2. C++-Schnittstelle für Android.
    • Gradle-Abhängigkeiten. Fügen Sie Folgendes zu Ihrer Modul-Gradle-Datei (auf App-Ebene) hinzu (normalerweise app/build.gradle ):
              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. Ebenso 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}")
              
  3. Informationen zum Einrichten der Desktop-Integration finden Sie unter Hinzufügen von Firebase zu Ihrem C++-Projekt .
Einheit
  1. Befolgen Sie die Anweisungen, um Firebase zu Ihrem Unity-Projekt hinzuzufügen .
  2. Verwenden Sie die Unity-Schnittstelle, um Ihr Projekt so zu konfigurieren, dass Android-Builds minimiert werden.
  3. Sie müssen den Build minimieren, um die Meldung Error while merging dex archives zu vermeiden.

    • Die Option finden Sie unter Player-Einstellungen > Android > Veröffentlichungseinstellungen > Minifizieren .
    • Die Optionen können in verschiedenen Unity-Versionen unterschiedlich sein. Weitere Informationen finden Sie in der offiziellen Unity-Dokumentation und im Firebase Unity Build Debug Guide .
    • Wenn die Anzahl der referenzierten Methoden nach der Aktivierung der Minifizierung immer noch den Grenzwert überschreitet, besteht eine weitere Möglichkeit darin, multidex zu aktivieren in:
      • mainTemplate.gradle , wenn „Benutzerdefinierte Gradle-Vorlage“ unter „Player-Einstellungen“ aktiviert ist
      • oder die Datei build.gradle auf Modulebene, wenn Sie Android Studio zum Erstellen des exportierten Projekts verwenden.
Node.js
  1. Fügen Sie Ihrer App das Firebase Admin SDK hinzu:
    npm install firebase-admin --save
  2. Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
Gehen
  1. Fügen Sie das Firebase Admin SDK zu Ihrer Go-App hinzu:
    go get firebase.google.com/go
    
  2. Befolgen Sie die nachstehenden Anweisungen, um Cloud Firestore mit den richtigen Anmeldeinformationen in Ihrer Umgebung zu initialisieren.
PHP
  1. Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldeinformationen von Google Application für die Authentifizierung.
    • Um sich in Ihrer Entwicklungsumgebung zu authentifizieren, legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS so fest, dass sie auf eine JSON-Dienstkontoschlüsseldatei verweist. Sie können eine Schlüsseldatei auf der Seite „Anmeldeinformationen“ 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 dabei dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
  2. Installieren und aktivieren Sie die gRPC-Erweiterung für PHP, die Sie zur Verwendung der Client-Bibliothek benötigen.
  3. Fügen Sie Ihrer App die Cloud Firestore PHP-Bibliothek hinzu:
    composer require google/cloud-firestore
C#
  1. Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldeinformationen von Google Application für die Authentifizierung.
    • Um sich in Ihrer Entwicklungsumgebung zu authentifizieren, legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS so fest, dass sie auf eine JSON-Dienstkontoschlüsseldatei verweist. Sie können eine Schlüsseldatei auf der Seite „Anmeldeinformationen“ 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 dabei dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
  2. Fügen Sie die Cloud Firestore C#-Bibliothek zu Ihrer App in Ihrer .csproj Datei hinzu:
    <ItemGroup>
      <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" />
    </ItemGroup>
  3. Fügen Sie Ihrer Program.cs Datei Folgendes hinzu:
    using Google.Cloud.Firestore;
Rubin
  1. Die Cloud Firestore-Server-Clientbibliotheken (Java, Node.js, Python, Go, PHP, C# und Ruby) verwenden die Standardanmeldeinformationen von Google Application für die Authentifizierung.
    • Um sich in Ihrer Entwicklungsumgebung zu authentifizieren, legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS so fest, dass sie auf eine JSON-Dienstkontoschlüsseldatei verweist. Sie können eine Schlüsseldatei auf der Seite „Anmeldeinformationen“ 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 dabei dasselbe Projekt verwenden, das Sie für Cloud Firestore verwenden. Andernfalls richten Sie ein Dienstkonto ein .
  2. Fügen Sie die Cloud Firestore Ruby-Bibliothek zu Ihrer App in Ihrer Gemfile hinzu:
    gem "google-cloud-firestore"
  3. Installieren Sie Abhängigkeiten aus Ihrer Gemfile mit:
    bundle install

(Optional) Prototypen erstellen und mit der Firebase Local Emulator Suite testen

Für mobile Entwickler: Bevor wir darüber sprechen, wie Ihre App in Cloud Firestore schreibt und daraus liest, stellen wir eine Reihe von Tools vor, mit denen Sie Cloud Firestore-Funktionen prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie verschiedene Datenmodelle ausprobieren, Ihre Sicherheitsregeln optimieren oder die kostengünstigste Möglichkeit für die Interaktion mit dem Backend finden, kann die Möglichkeit, lokal zu arbeiten, ohne Live-Dienste bereitzustellen, eine gute Idee sein.

Ein Cloud Firestore-Emulator ist Teil der Local Emulator Suite, die es Ihrer App ermöglicht, mit Ihrem emulierten Datenbankinhalt und Ihrer emulierten Datenbankkonfiguration sowie optional mit Ihren emulierten Projektressourcen (Funktionen, andere Datenbanken und Sicherheitsregeln) zu interagieren.

Die Verwendung des Cloud Firestore-Emulators erfordert nur wenige Schritte:

  1. Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
  2. Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses firebase emulators:start .
  3. Führen Sie wie gewohnt Aufrufe aus dem Prototypcode Ihrer App mithilfe eines Cloud Firestore-Plattform-SDK durch.

Eine detaillierte Anleitung zu Cloud Firestore und Cloud Functions ist verfügbar. Sie sollten sich auch die Einführung zur Local Emulator Suite ansehen.

Cloud Firestore initialisieren

Initialisieren Sie eine Instanz von Cloud Firestore:

Web modular API

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 die Verbindung verliert, finden Sie in der Dokumentation zum Aktivieren von Offline-Daten .

Web namespaced API

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 die Verbindung verliert, finden Sie in der Dokumentation zum Aktivieren von Offline-Daten .

Schnell
Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
import FirebaseCore
import FirebaseFirestore
FirebaseApp.configure()

let db = Firestore.firestore()
Ziel c
Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
@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 Initialisieren des Admin SDK .
  • Initialisieren Sie in Google Cloud
    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 Sie auf Ihrem eigenen Server

    Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .

    Gehen Sie in der Google Cloud Console zu IAM & Admin > 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 Initialisieren des Admin SDK .
  • Initialisieren Sie in Google Cloud
    import firebase_admin
    from firebase_admin import firestore
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore.client()

    Zur Initialisierung des SDK können auch vorhandene Standardanmeldeinformationen für die Anwendung verwendet werden.

    import firebase_admin
    from firebase_admin import credentials
    from firebase_admin import firestore
    
    # Use the application default credentials.
    cred = credentials.ApplicationDefault()
    
    firebase_admin.initialize_app(cred)
    db = firestore.client()
  • Initialisieren Sie auf Ihrem eigenen Server

    Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .

    Gehen Sie in der Google Cloud Console zu IAM & Admin > 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 Initialisieren des Admin SDK .
  • Initialisieren Sie in Google Cloud
    import firebase_admin
    from firebase_admin import firestore_async
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore_async.client()

    Zur Initialisierung des SDK können auch vorhandene Standardanmeldeinformationen für die Anwendung verwendet 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()
  • Initialisieren Sie auf Ihrem eigenen Server

    Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .

    Gehen Sie in der Google Cloud Console zu IAM & Admin > 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 Initialisieren des Admin SDK .
    • Auf Cloud Functions
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      initializeApp();
      
      const db = getFirestore();
      
      initialisieren
    • Initialisieren Sie in Google Cloud
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      initializeApp({
        credential: applicationDefault()
      });
      
      const db = getFirestore();
    • 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 Console zu IAM & Admin > 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, Filter } = 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 Initialisieren des Admin SDK .
  • Initialisieren Sie in Google Cloud
    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 Sie auf Ihrem eigenen Server

    Um das Firebase Admin SDK auf Ihrem eigenen Server zu verwenden, verwenden Sie ein Dienstkonto .

    Gehen Sie in der Google Cloud Console zu IAM & Admin > 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 .

    use Google\Cloud\Firestore\FirestoreClient;
    
    /**
     * Initialize Cloud Firestore with default project ID.
     */
    function setup_client_create(string $projectId = null)
    {
        // Create the Cloud Firestore client
        if (empty($projectId)) {
            // The `projectId` parameter is optional and represents which project the
            // client will act on behalf of. If not supplied, the client falls back to
            // the default project inferred from the environment.
            $db = new FirestoreClient();
            printf('Created Cloud Firestore client with default project ID.' . PHP_EOL);
        } else {
            $db = new FirestoreClient([
                'projectId' => $projectId,
            ]);
            printf('Created Cloud Firestore client with project ID: %s' . PHP_EOL, $projectId);
        }
    }
    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 .

    FirestoreDb db = FirestoreDb.Create(project);
    Console.WriteLine("Created Cloud Firestore client with project ID: {0}", project);
    Rubin
    require "google/cloud/firestore"
    
    # The `project_id` parameter is optional and represents which project the
    # client will act on behalf of. If not supplied, the client falls back to the
    # default project inferred from the environment.
    firestore = Google::Cloud::Firestore.new project_id: project_id
    
    puts "Created Cloud Firestore client with given project ID."

    Daten hinzufügen

    Cloud Firestore speichert Daten in Dokumenten, die in Sammlungen gespeichert werden. Cloud Firestore erstellt implizit Sammlungen und Dokumente, wenn Sie dem Dokument zum ersten Mal Daten hinzufügen. Sie müssen keine expliziten Sammlungen oder Dokumente erstellen.

    Erstellen Sie mit dem folgenden Beispielcode eine neue Sammlung und ein Dokument.

    Web modular API

    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 namespaced API

    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
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    // 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)")
    }
    Ziel c
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    // 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
    DocumentReference docRef = db.collection("users").document("alovelace");
    // Add document data  with id "alovelace" using a hashmap
    Map<String, Object> data = new HashMap<>();
    data.put("first", "Ada");
    data.put("last", "Lovelace");
    data.put("born", 1815);
    //asynchronously write data
    ApiFuture<WriteResult> result = docRef.set(data);
    // ...
    // result.get() blocks on response
    System.out.println("Update time : " + result.get().getUpdateTime());
    Python
    doc_ref = db.collection("users").document("alovelace")
    doc_ref.set({"first": "Ada", "last": "Lovelace", "born": 1815})

    Python

    doc_ref = db.collection("users").document("alovelace")
    await doc_ref.set({"first": "Ada", "last": "Lovelace", "born": 1815})
    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
    const docRef = db.collection('users').doc('alovelace');
    
    await docRef.set({
      first: 'Ada',
      last: 'Lovelace',
      born: 1815
    });
    Gehen
    _, _, err := client.Collection("users").Add(ctx, map[string]interface{}{
    	"first": "Ada",
    	"last":  "Lovelace",
    	"born":  1815,
    })
    if err != nil {
    	log.Fatalf("Failed adding alovelace: %v", err)
    }
    PHP

    PHP

    Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken .

    $docRef = $db->collection('samples/php/users')->document('alovelace');
    $docRef->set([
        'first' => 'Ada',
        'last' => 'Lovelace',
        'born' => 1815
    ]);
    printf('Added data to the lovelace document in the users collection.' . PHP_EOL);
    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#
    DocumentReference docRef = db.Collection("users").Document("alovelace");
    Dictionary<string, object> user = new Dictionary<string, object>
    {
        { "First", "Ada" },
        { "Last", "Lovelace" },
        { "Born", 1815 }
    };
    await docRef.SetAsync(user);
    Rubin
    doc_ref = firestore.doc "#{collection_path}/alovelace"
    
    doc_ref.set(
      {
        first: "Ada",
        last:  "Lovelace",
        born:  1815
      }
    )
    
    puts "Added data to the alovelace document in the users collection."

    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 modular API

    // 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 namespaced API

    // 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
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    // 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)")
    }
    Ziel c
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    // 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
    DocumentReference docRef = db.collection("users").document("aturing");
    // Add document data with an additional field ("middle")
    Map<String, Object> data = new HashMap<>();
    data.put("first", "Alan");
    data.put("middle", "Mathison");
    data.put("last", "Turing");
    data.put("born", 1912);
    
    ApiFuture<WriteResult> result = docRef.set(data);
    System.out.println("Update time : " + result.get().getUpdateTime());
    Python
    doc_ref = db.collection("users").document("aturing")
    doc_ref.set({"first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912})

    Python

    doc_ref = db.collection("users").document("aturing")
    await doc_ref.set(
        {"first": "Alan", "middle": "Mathison", "last": "Turing", "born": 1912}
    )
    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
    const aTuringRef = db.collection('users').doc('aturing');
    
    await aTuringRef.set({
      'first': 'Alan',
      'middle': 'Mathison',
      'last': 'Turing',
      'born': 1912
    });
    Gehen
    _, _, err = client.Collection("users").Add(ctx, map[string]interface{}{
    	"first":  "Alan",
    	"middle": "Mathison",
    	"last":   "Turing",
    	"born":   1912,
    })
    if err != nil {
    	log.Fatalf("Failed adding aturing: %v", err)
    }
    PHP

    PHP

    Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken .

    $docRef = $db->collection('samples/php/users')->document('aturing');
    $docRef->set([
        'first' => 'Alan',
        'middle' => 'Mathison',
        'last' => 'Turing',
        'born' => 1912
    ]);
    printf('Added data to the aturing document in the users collection.' . PHP_EOL);
    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#
    DocumentReference docRef = db.Collection("users").Document("aturing");
    Dictionary<string, object> user = new Dictionary<string, object>
    {
        { "First", "Alan" },
        { "Middle", "Mathison" },
        { "Last", "Turing" },
        { "Born", 1912 }
    };
    await docRef.SetAsync(user);
    Rubin
    doc_ref = firestore.doc "#{collection_path}/aturing"
    
    doc_ref.set(
      {
        first:  "Alan",
        middle: "Mathison",
        last:   "Turing",
        born:   1912
      }
    )
    
    puts "Added data to the aturing document in the users collection."

    Daten lesen

    Verwenden Sie den Datenviewer 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 modular API

    import { collection, getDocs } from "firebase/firestore"; 
    
    const querySnapshot = await getDocs(collection(db, "users"));
    querySnapshot.forEach((doc) => {
      console.log(`${doc.id} => ${doc.data()}`);
    });

    Web namespaced API

    db.collection("users").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(`${doc.id} => ${doc.data()}`);
        });
    });
    Schnell
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    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)")
    }
    Ziel c
    Hinweis: Dieses Produkt ist nicht auf watchOS- und App Clip-Zielen verfügbar.
    [[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
    // asynchronously retrieve all users
    ApiFuture<QuerySnapshot> query = db.collection("users").get();
    // ...
    // query.get() blocks on response
    QuerySnapshot querySnapshot = query.get();
    List<QueryDocumentSnapshot> documents = querySnapshot.getDocuments();
    for (QueryDocumentSnapshot document : documents) {
      System.out.println("User: " + document.getId());
      System.out.println("First: " + document.getString("first"));
      if (document.contains("middle")) {
        System.out.println("Middle: " + document.getString("middle"));
      }
      System.out.println("Last: " + document.getString("last"));
      System.out.println("Born: " + document.getLong("born"));
    }
    Python
    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")

    Python

    users_ref = db.collection("users")
    docs = users_ref.stream()
    
    async for doc in docs:
        print(f"{doc.id} => {doc.to_dict()}")
    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
    const snapshot = await db.collection('users').get();
    snapshot.forEach((doc) => {
      console.log(doc.id, '=>', doc.data());
    });
    Gehen
    iter := client.Collection("users").Documents(ctx)
    for {
    	doc, err := iter.Next()
    	if err == iterator.Done {
    		break
    	}
    	if err != nil {
    		log.Fatalf("Failed to iterate: %v", err)
    	}
    	fmt.Println(doc.Data())
    }
    PHP

    PHP

    Weitere Informationen zum Installieren und Erstellen eines Cloud Firestore-Clients finden Sie unter Cloud Firestore-Clientbibliotheken .

    $usersRef = $db->collection('samples/php/users');
    $snapshot = $usersRef->documents();
    foreach ($snapshot as $user) {
        printf('User: %s' . PHP_EOL, $user->id());
        printf('First: %s' . PHP_EOL, $user['first']);
        if (!empty($user['middle'])) {
            printf('Middle: %s' . PHP_EOL, $user['middle']);
        }
        printf('Last: %s' . PHP_EOL, $user['last']);
        printf('Born: %d' . PHP_EOL, $user['born']);
        printf(PHP_EOL);
    }
    printf('Retrieved and printed out all documents from the users collection.' . PHP_EOL);
    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#
    CollectionReference usersRef = db.Collection("users");
    QuerySnapshot snapshot = await usersRef.GetSnapshotAsync();
    foreach (DocumentSnapshot document in snapshot.Documents)
    {
        Console.WriteLine("User: {0}", document.Id);
        Dictionary<string, object> documentDictionary = document.ToDictionary();
        Console.WriteLine("First: {0}", documentDictionary["First"]);
        if (documentDictionary.ContainsKey("Middle"))
        {
            Console.WriteLine("Middle: {0}", documentDictionary["Middle"]);
        }
        Console.WriteLine("Last: {0}", documentDictionary["Last"]);
        Console.WriteLine("Born: {0}", documentDictionary["Born"]);
        Console.WriteLine();
    }
    Rubin
    users_ref = firestore.col collection_path
    users_ref.get do |user|
      puts "#{user.document_id} data: #{user.data}."
    end

    Sichern Sie Ihre Daten

    Wenn Sie das Web-, Android- oder Apple-Plattform-SDK verwenden, verwenden Sie Firebase-Authentifizierung und Cloud Firestore-Sicherheitsregeln , 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 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, ergreifen Sie außerdem Maßnahmen, um sicherzustellen, 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, verwenden Sie Identity and Access Management (IAM) , um Ihre Daten in Cloud Firestore zu schützen.

    Sehen Sie sich ein Video-Tutorial an

    Ausführliche Anleitungen zum Einstieg in die mobilen Client-Bibliotheken von Cloud Firestore 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 – Lernen Sie, Cloud Firestore in einer echten App zu 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 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 zusammengesetzte Abfragen durchführen – Erfahren Sie, wie Sie einfache und zusammengesetzte Abfragen ausführen.
    • Abfragen ordnen und begrenzen Erfahren Sie, wie Sie die von Ihren Abfragen zurückgegebenen Daten ordnen und begrenzen.