Check out what’s new from Firebase at Google I/O 2022. Learn more

Beginnen Sie mit Cloud Firestore

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

  1. 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.

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

  3. 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.

  4. 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.

  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 version 8

  1. Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Web-App .
  2. 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

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

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-Plattform-SDK-Repository hinzu:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Wählen Sie die Firestore-Bibliothek aus.
  5. Wenn Sie fertig sind, beginnt Xcode automatisch mit dem Auflösen und Herunterladen Ihrer Abhängigkeiten im Hintergrund.

Java

  1. Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Android-App .
  2. 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:30.0.2')
    
        // 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.1.2'
    }
    

Kotlin+KTX

  1. Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrer Android-App .
  2. 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:30.0.2')
    
        // 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.1.2'
    }
    

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
Java
  1. Fügen Sie Ihrer App das Firebase Admin SDK hinzu:
    • Mit Gradle:
      compile 'com.google.firebase:firebase-admin:8.1.0'
      
    • Mit Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>8.1.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 Ihrer Python-App das Firebase Admin SDK 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 zum Hinzufügen von Firebase zu Ihrem C++-Projekt .
  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. 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}")
              
  3. Informationen zum Einrichten der Desktop-Integration finden Sie unter Hinzufügen von Firebase zu Ihrem C++-Projekt .
Einheit
  1. Befolgen Sie die Anweisungen zum Hinzufügen von Firebase zu Ihrem Unity-Projekt .
  2. Unity-Schnittstelle für Android.
  3. Aktivieren Sie beim Erstellen für Android ProGuarding, um das Android-DEX-Limit zu umgehen. Gehen Sie dazu im Unity-Editor wie folgt vor:

    1. Wählen Sie Datei > Build-Einstellungen aus
    2. Wechseln Sie von „Plattform“ zu „Android“ und klicken Sie auf „Plattform wechseln“.
    3. Klicken Sie auf „Player-Einstellungen…“.
    4. Wählen Sie in der Hauptbenutzeroberfläche von Unity unter „Einstellungen für Android“ die Option „Veröffentlichungseinstellungen“.
    5. Ändern Sie im Abschnitt „Minify“ sowohl die Release- als auch die Debug-Einstellungen von „None“ auf „ProGuard“.
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 Ihrer Go-App das Firebase Admin SDK 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 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 .
  2. Installieren und aktivieren Sie die gRPC-Erweiterung für PHP, die Sie zur Verwendung der Clientbibliothek benötigen.
  3. Fügen Sie Ihrer App die Cloud Firestore-PHP-Bibliothek hinzu:
    composer require google/cloud-firestore
C#
  1. 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 .
  2. 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>
  3. Fügen Sie Ihrer Program.cs -Datei Folgendes hinzu:
    using Google.Cloud.Firestore;
Rubin
  1. 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 .
  2. Fügen Sie Ihrer App in Ihrem Gemfile die Cloud Firestore Ruby-Bibliothek hinzu:
    gem "google-cloud-firestore"
  3. 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:

  1. Hinzufügen einer Codezeile zur Testkonfiguration Ihrer App, um eine Verbindung mit dem Emulator herzustellen.
  2. Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses firebase emulators:start aus.
  3. 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://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
    // ...
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);


// Initialize Cloud Firestore and get a reference to the service
const db = getFirestore(app);

Die Werte für „initializeApp“ finden Sie in der „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://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
    // ...
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


// Initialize Cloud Firestore and get a reference to the service
const db = firebase.firestore();

Die Werte für „initializeApp“ finden Sie in der „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
Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht verfügbar.
import FirebaseCore
import FirebaseFirestore
FirebaseApp.configure()

let db = Firestore.firestore()
Ziel c
Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht verfügbar.
@import FirebaseCore;
@import FirebaseFirestore;

// Use Firebase library to configure APIs
[FIRApp configure];
  
FIRFirestore *defaultFirestore = [FIRFirestore firestore];

Java

// Access a Cloud Firestore instance from your Activity
FirebaseFirestore db = FirebaseFirestore.getInstance();

Kotlin+KTX

// Access a Cloud Firestore instance from your Activity
val db = Firebase.firestore

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 .
  • Auf Google Cloud Platform
    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
  • 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 Cloud Platform-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 .
  • Initialisieren Sie auf der Google Cloud Platform
    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, {
      'projectId': project_id,
    })
    
    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 Cloud Platform-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')
    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 .
  • Auf Google Cloud Platform
    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, {
      'projectId': project_id,
    })
    
    db = firestore.AsyncClient()
    
    initialisieren
  • 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 Cloud Platform-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')
    firebase_admin.initialize_app(cred)
    
    db = firestore.AsyncClient()
    
  • 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 initialisieren
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
      initializeApp();
      
      const db = getFirestore();
      
    • Initialisieren Sie auf der Google Cloud Platform
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue } = 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 Cloud Platform-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 .
  • Auf der Google Cloud Platform
    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
  • 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 Cloud Platform-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
    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#
    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 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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht verfügbar.
    // 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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht 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);
          }
        }];

    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);
                }
            });

    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)
        }

    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(u'users').document(u'alovelace')
    doc_ref.set({
        u'first': u'Ada',
        u'last': u'Lovelace',
        u'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
    $docRef = $db->collection('samples/php/users')->document('lovelace');
    $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 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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht verfügbar.
    // 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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht 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);
          }
        }];

    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);
                }
            });

    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)
        }

    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(u'users').document(u'aturing')
    doc_ref.set({
        u'first': u'Alan',
        u'middle': u'Mathison',
        u'last': u'Turing',
        u'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
    $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

    Um schnell zu überprüfen, ob Sie Daten zu Cloud Firestore hinzugefügt haben, verwenden Sie die Datenanzeige in der Firebase-Konsole .

    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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht verfügbar.
    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
    Hinweis: Dieses Produkt ist auf watchOS- und App Clip-Zielen nicht 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);
            }
          }
        }];

    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());
                    }
                }
            });

    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)
            }

    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(u'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
    $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 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.