Pierwsze kroki z Cloud Firestore

Z tego krótkiego wprowadzenia dowiesz się, jak skonfigurować usługę Cloud Firestore, dodać dane, a następnie wyświetlić dodane przed chwilą w konsoli Firebase.

Tworzenie bazy danych Cloud Firestore

  1. Jeśli jeszcze nie masz projektu Firebase, utwórz go w Konsola Firebase kliknij Dodaj projekt. i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby utworzyć projekt Firebase lub dodać usługi Firebase do istniejącego projektu GCP.

  2. Przejdź do sekcji Cloud Firestore Konsola Firebase. Pojawi się prośba o wybranie istniejącego projektu Firebase. Postępuj zgodnie z procedurą tworzenia bazy danych.

  3. Wybierz tryb początkowy dla urządzenia Cloud Firestore Security Rules:

    Tryb testowy

    Dobre rozwiązanie w przypadku rozpoczynania pracy z bibliotekami klienta mobilnego i internetowego, ale pozwala każdemu na odczyt i zastępowanie Twoich danych. Po zakończeniu testów upewnij się, że zapoznaj się z sekcją Zabezpieczanie danych.

    Aby zacząć korzystać z internetu, platform Apple lub pakietu SDK na Androida, wybierz tryb testowy.

    Tryb blokady

    Blokuje wszystkie odczyty i zapisy z klientów mobilnych i internetowych. Twoje uwierzytelnione serwery aplikacji (C#, Go, Java, Node.js, PHP, Python lub Ruby) nadal może uzyskać dostęp do bazy danych.

    Aby zacząć korzystać z języków C#, Go, Java, Node.js, PHP, Python lub Ruby w bibliotece klienta serwera, wybierz tryb blokady.

    Początkowy zestaw wartości Cloud Firestore Security Rules będzie stosowany do domyślnego Cloud Firestore. Jeśli w projekcie tworzysz wiele baz danych, możesz wdrożyć Cloud Firestore Security Rules w każdej bazie danych.

  4. Wybierz lokalizację bazy danych.

    • To ustawienie lokalizacji jest powiązane z ustawieniami domyślna lokalizacja zasobów Google Cloud Platform (GCP). Pamiętaj, że ta lokalizacja będzie używana w przypadku usług GCP w Twoim projekcie które wymagają ustawienia lokalizacji, a zwłaszcza domyślnego Cloud Storage i aplikacja App Engine (czyli wymagane, jeśli używasz usługi Cloud Scheduler).

    • Jeśli nie możesz wybrać lokalizacji, oznacza to, że Twój projekt już tam jest. ma domyślną lokalizację zasobów GCP. Został ustawiony podczas projektu lub podczas konfigurowania innej usługi, która wymaga podania lokalizacji. .

    .
  5. Kliknij Gotowe.

.

Gdy włączysz Cloud Firestore, spowoduje to również włączenie interfejsu API w Menedżer interfejsów API Cloud.

Konfigurowanie środowiska programistycznego

Dodaj do aplikacji wymagane zależności i biblioteki klienta.

Web

  1. Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji internetowej.
  2. Dodaj biblioteki Firebase i Cloud Firestore do swojej aplikacji:
    <script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-app-compat.js"></script>
    <script src="https://www.gstatic.com/firebasejs/10.13.1/firebase-firestore-compat.js"></script>
    Pakiet npm Cloud Firestore jest też dostępny jako pakiet npm.
    npm install firebase@10.13.1 --save
    Musisz ręcznie wymagać zarówno Firebase, jak i Cloud Firestore.
    import firebase from "firebase/compat/app";
    // Required for side-effects
    import "firebase/firestore";

Web

  1. Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji internetowej.
  2. Pakiet SDK Cloud Firestore jest dostępny jako pakiet npm.
    npm install firebase@10.13.1 --save
    Musisz zaimportować zarówno Firebase, jak i Cloud Firestore.
    import { initializeApp } from "firebase/app";
    import { getFirestore } from "firebase/firestore";
.
iOS+

Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji Apple.

Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.

  1. W Xcode po otwarciu projektu aplikacji przejdź do File > Pakiety Swift > Dodaj zależność pakietu.
  2. Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Wybierz bibliotekę Firestore.
  5. Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.
Android
  1. Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej aplikacji na Androida.
  2. Korzystanie z Firebase Android BoM, zadeklaruj zależność z biblioteką Cloud Firestore dla Androida w Twój plik Gradle (na poziomie modułu) (zwykle app/build.gradle.kts lub app/build.gradle).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.2.0"))
    
        // Declare the dependency for the Cloud Firestore library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-firestore")
    }

    Za pomocą Firebase Android BoM, Twoja aplikacja zawsze będzie używać zgodnych wersji Firebase na Androida biblioteki.

    (Wersja alternatywna) Zadeklaruj zależności bibliotek Firebase bez użycia atrybutu BoM

    Jeśli zdecydujesz się nie używać dokumentu Firebase BoM, musisz określić każdy z nich Wersja biblioteki Firebase w wierszu zależności.

    Pamiętaj, że jeśli używasz wielu bibliotek Firebase w Twojej aplikacji, zalecamy zarządzanie biblioteką za pomocą aplikacji BoM dzięki czemu są one zgodne.

    dependencies {
        // Declare the dependency for the Cloud Firestore library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-firestore:25.1.0")
    }

    Szukasz modułu biblioteki korzystającego z usługi Kotlin? Zaczyna się od Wersja z października 2023 r., zarówno programiści Kotlin, jak i Javy mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w Najczęstsze pytania na temat tej inicjatywy).

Dart

  1. W razie potrzeby skonfiguruj zainicjować Firebase w aplikacji Flutter.
  2. W katalogu głównym projektu Flutter uruchom to polecenie, aby Zainstaluj wtyczkę:
    flutter pub add cloud_firestore
  3. Po zakończeniu ponownie skompiluj aplikację Flutter:
    flutter run
  4. Opcjonalnie: ulepsz iOS i Czasy kompilacji macOS przez dodanie parametru gotowej struktury.

    Obecnie pakiet SDK Firestore na iOS zależy od kodu, który może zająć zajmuje więcej niż 5 minut, aby utworzyć w Xcode. Aby skrócić czas kompilacji możesz użyć wstępnie skompilowanej wersji, dodając ten wiersz do blok target 'Runner' do w pliku Podfile:

    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

    Zastąp IOS_SDK_VERSION wersją Firebase iOS Pakiet SDK określony w firebase_core firebase_sdk_version.rb. . Jeśli nie używasz najnowszej wersji firebase_core, poszukaj tego pliku w lokalnym pakiecie Pub pamięć podręczna (zwykle ~/.pub-cache).

    Dodatkowo upewnij się, że masz uaktualnione CocoaPods do wersji 1.9.1 lub wyższe:

    gem install cocoapods

    Więcej informacji: problem w GitHubie.

Java
  1. Dodaj do aplikacji pakiet SDK Firebase Admin:
    • Używanie Gradle:
      compile 'com.google.firebase:firebase-admin:1.32.0'
    • Korzystanie z narzędzia Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>1.32.0</version>
      </dependency>
           
  2. Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
Python
  1. Dodaj pakiet SDK Firebase Admin do aplikacji w Pythonie:
    pip install --upgrade firebase-admin
  2. Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
C++
  1. Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojego projektu w C++,
  2. Interfejs C++ na Androida.
    • Zależności Gradle. Dodaj do modułu te elementy Plik Gradle (na poziomie aplikacji) (zwykle 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
              }
              
    • Zależności plików binarnych. Zalecany sposób uzyskiwania zależności binarne są dodanie tego do pliku CMakeLists.txt plik:
              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. Instrukcje konfigurowania integracji z komputerami znajdziesz w artykule Dodawanie Firebase do projektu C++.
Unity
  1. Postępuj zgodnie z instrukcjami, aby: dodaj Firebase do swojej platformy Unity projekt.
  2. Użyj interfejsu Unity, aby skonfigurować w projekcie zmniejszanie kompilacji Androida.
  3. Aby uniknąć komunikatu Error while merging dex archives, musisz zmniejszyć kompilację.

    • Tę opcję znajdziesz w Ustawieniach odtwarzacza > Android > Publikowanie Ustawienia > Zmniejsz.
    • Te opcje mogą się różnić w zależności od wersji Unity, więc zapoznaj się z oficjalnej dokumentacji Unity oraz Przewodnik po debugowaniu kompilacji Unity w Firebase
    • Jeśli po włączeniu minifikacji liczba przywołanych metod nadal przekracza limit, inną opcją jest włączenie multidex w:
      • mainTemplate.gradle, jeśli w sekcji Ustawienia gracza włączono Niestandardowy szablon Gradle
      • lub plik build.gradle na poziomie modułu, jeśli do utworzenia wyeksportowanego projektu używasz Android Studio.
Node.js
  1. Dodaj do aplikacji pakiet SDK Firebase Admin:
    npm install firebase-admin --save
  2. Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
Go
  1. Dodaj pakiet SDK Firebase Admin do aplikacji w języku Go:
    go get firebase.google.com/go
  2. Aby zainicjować Cloud Firestore, postępuj zgodnie z tymi instrukcjami za pomocą odpowiednich danych uwierzytelniających używanych w Twoim środowisku.
PHP
  1. Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają Domyślne dane uwierzytelniające aplikacji Google do uwierzytelniania.
    • Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw GOOGLE_APPLICATION_CREDENTIALS zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
  2. Zainstaluj i włącz rozszerzenie gRPC do języka PHP. Należy użyć biblioteki klienta.
  3. Dodaj bibliotekę PHP Cloud Firestore do swojej aplikacji:
    composer require google/cloud-firestore
C#
  1. Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają Domyślne dane uwierzytelniające aplikacji Google do uwierzytelniania.
    • Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw GOOGLE_APPLICATION_CREDENTIALS zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
  2. Dodaj bibliotekę Cloud Firestore C# do swojej aplikacji w pliku .csproj:
    <ItemGroup>
      <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" />
    </ItemGroup>
  3. Dodaj do pliku Program.cs te wiersze:
    using Google.Cloud.Firestore;
Ruby
  1. Biblioteki klienta serwera Cloud Firestore (Java, Node.js, Python, Go, PHP, C# i Ruby) używają Domyślne dane uwierzytelniające aplikacji Google do uwierzytelniania.
    • Aby uwierzytelnić się ze swojego środowiska programistycznego, ustaw GOOGLE_APPLICATION_CREDENTIALS zmiennej środowiskowej wskazującej plik klucza konta usługi JSON. Możesz utworzyć plik klucza na stronie Dane logowania Konsoli interfejsów API.
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • W środowisku produkcyjnym nie musisz się uwierzytelniać, jeśli korzystasz z aplikacji. w App Engine lub Compute Engine, korzystając z tego samego projektu, którego używasz w Cloud Firestore. W przeciwnym razie skonfigurować konto usługi.
  2. Dodaj bibliotekę Cloud Firestore Ruby do swojej aplikacji w: Gemfile:
    gem "google-cloud-firestore"
  3. Zainstaluj zależności z urządzenia Gemfile za pomocą:
    bundle install

(Opcjonalnie) Prototypowanie i testowanie przy użyciu Firebase Local Emulator Suite

Dla deweloperów aplikacji mobilnych: zanim zaczniesz rozmawiać o tym, jak aplikacja zapisuje i odczytuje dane od Cloud Firestore. Przedstawmy więc zestaw narzędzi, których możesz użyć do prototyp i przetestowanie funkcji Cloud Firestore: Firebase Local Emulator Suite Jeśli wypróbowujesz różne modele danych, optymalizowanie reguł zabezpieczeń lub znalezienie najbardziej opłacalnego sposobu umożliwia interakcję z backendem dzięki możliwości pracy lokalnej bez wdrażania usługi na żywo to bardzo dobry pomysł.

Emulator Cloud Firestore jest częścią interfejsu Local Emulator Suite, który umożliwia aplikacji interakcję z treścią i konfiguracją emulowanej bazy danych a także opcjonalnie emulowane zasoby projektu (funkcje, inne bazy danych, i reguły zabezpieczeń).

Aby użyć emulatora Cloud Firestore, wystarczy wykonać kilka czynności:

  1. Dodajesz wiersz kodu do konfiguracji testowej aplikacji, aby połączyć się z emulatorem.
  2. Uruchomienie firebase emulators:start w katalogu głównym projektu lokalnego.
  3. Wykonywanie wywołań z prototypowego kodu aplikacji za pomocą platformy Cloud Firestore pakietu SDK.

Dostępny jest szczegółowy przewodnik dotyczący elementów Cloud Firestore i Cloud Functions. Warto też zapoznać się z wprowadzeniem do funkcji Local Emulator Suite.

Zainicjuj instancję Cloud Firestore

Zainicjuj instancję maszyny wirtualnej Cloud Firestore:

Web

import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://support.google.com/firebase/answer/7015592
const firebaseConfig = {
    FIREBASE_CONFIGURATION
};

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


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

Zastąp FIREBASE_CONFIGURATION adresem URL Twojej aplikacji internetowej firebaseConfig

Aby zachować dane, gdy urządzenie utraci połączenie, zapoznaj się z dokumentacją Włączanie danych offline.

Web

import firebase from "firebase/app";
import "firebase/firestore";

// TODO: Replace the following with your app's Firebase project configuration
// See: https://support.google.com/firebase/answer/7015592
const firebaseConfig = {
    FIREBASE_CONFIGURATION
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


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

Zastąp FIREBASE_CONFIGURATION adresem URL Twojej aplikacji internetowej firebaseConfig

Aby zachować dane, gdy urządzenie utraci połączenie, zapoznaj się z dokumentacją Włączanie danych offline.

Swift
Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
import FirebaseCore
import FirebaseFirestore
FirebaseApp.configure()

let db = Firestore.firestore()
Objective-C
Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
@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
Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.
  • Zainicjuj dnia 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();
  • Zainicjuj na własnym serwerze

    Aby używać pakietu Firebase Admin SDK na swoim serwerze, użyj konta usługi.

    Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. Wygeneruj nowy klucz prywatny i zapisz plik JSON . Następnie użyj tego pliku do zainicjowania pakietu SDK:

    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
    Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.
  • Zainicjuj dnia Google Cloud
    import firebase_admin
    from firebase_admin import firestore
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore.client()

    Do zainicjowania pakietu SDK można też użyć istniejących domyślnych danych uwierzytelniających aplikacji.

    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()
  • Zainicjuj na własnym serwerze

    Aby używać pakietu Firebase Admin SDK na swoim serwerze, użyj konta usługi.

    Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. Wygeneruj nowy klucz prywatny i zapisz plik JSON . Następnie użyj tego pliku do zainicjowania pakietu SDK:

    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

    Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.
  • Zainicjuj dnia 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()

    Do zainicjowania pakietu SDK można też użyć istniejących domyślnych danych uwierzytelniających aplikacji.

    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()
  • Zainicjuj na własnym serwerze

    Aby używać pakietu Firebase Admin SDK na swoim serwerze, użyj konta usługi.

    Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. Wygeneruj nowy klucz prywatny i zapisz plik JSON . Następnie użyj tego pliku do zainicjowania pakietu SDK:

    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
    Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.
    • Zainicjuj dnia Cloud Functions
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      initializeApp();
      
      const db = getFirestore();
      
    • Zainicjuj dnia 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();
    • Zainicjuj na własnym serwerze

      Aby używać pakietu SDK Firebase Admin na własnym serwerze (lub w dowolnym innym środowisku Node.js), użyć konta usługi. Otwórz Uprawnienia i administrator > kont usługi w konsoli Google Cloud. Wygeneruj nowy klucz prywatny i zapisz plik JSON. Następnie użyj tego pliku do zainicjowania pakietu SDK:

      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
      const serviceAccount = require('./path/to/serviceAccountKey.json');
      
      initializeApp({
        credential: cert(serviceAccount)
      });
      
      const db = getFirestore();
      
    Go
    Pakiet SDK Cloud Firestore jest inicjowany na różne sposoby w zależności od z Twojego środowiska. Poniżej przedstawiamy najpopularniejsze metody. Aby uzyskać pełne informacje, zobacz Zainicjuj pakiet Admin SDK.
  • Zainicjuj dnia 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()
  • Zainicjuj na własnym serwerze

    Aby używać pakietu Firebase Admin SDK na swoim serwerze, użyj konta usługi.

    Otwórz Uprawnienia administrator > Konta usługi w konsoli Google Cloud. Wygeneruj nowy klucz prywatny i zapisz plik JSON . Następnie użyj tego pliku do zainicjowania pakietu SDK:

    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

    Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz tutaj: Biblioteki klienta Cloud Firestore.

    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);
        }
    }
    Unity
    using Firebase.Firestore;
    using Firebase.Extensions;
    FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
    C#

    C#

    Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz tutaj: Biblioteki klienta Cloud Firestore.

    FirestoreDb db = FirestoreDb.Create(project);
    Console.WriteLine("Created Cloud Firestore client with project ID: {0}", project);
    Ruby
    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."

    Dodaj dane

    Cloud Firestore przechowuje dane w Dokumentach, które są przechowywane w Kolekcjach. Cloud Firestore domyślnie tworzy kolekcje i dokumenty przy pierwszym dodawaniu danych do dokumentu. Nie musisz jednoznacznie tworzyć kolekcje i dokumenty.

    Utwórz nową kolekcję i dokument, korzystając z poniższego przykładowego kodu.

    Web

    import { collection, addDoc } from "firebase/firestore"; 
    
    try {
      const docRef = await addDoc(collection(db, "users"), {
        first: "Ada",
        last: "Lovelace",
        born: 1815
      });
      console.log("Document written with ID: ", docRef.id);
    } catch (e) {
      console.error("Error adding document: ", e);
    }

    Web

    db.collection("users").add({
        first: "Ada",
        last: "Lovelace",
        born: 1815
    })
    .then((docRef) => {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch((error) => {
        console.error("Error adding document: ", error);
    });
    Swift
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    // Add a new document with a generated ID
    do {
      let ref = try await db.collection("users").addDocument(data: [
        "first": "Ada",
        "last": "Lovelace",
        "born": 1815
      ])
      print("Document added with ID: \(ref.documentID)")
    } catch {
      print("Error adding document: \(error)")
    }
    Objective-C
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    // 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
    });
    Go
    _, _, 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

    Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz tutaj: Biblioteki klienta Cloud Firestore.

    $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);
    Unity
    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);
    Ruby
    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."

    Teraz dodaj kolejny dokument do kolekcji users. Zwróć uwagę, że ten dokument zawiera parę klucz-wartość (drugą nazwę), która nie występuje na pierwszym miejscu. dokument. Dokumenty w kolekcji mogą zawierać różne zestawy informacji.

    Web

    // Add a second document with a generated ID.
    import { addDoc, collection } from "firebase/firestore"; 
    
    try {
      const docRef = await addDoc(collection(db, "users"), {
        first: "Alan",
        middle: "Mathison",
        last: "Turing",
        born: 1912
      });
    
      console.log("Document written with ID: ", docRef.id);
    } catch (e) {
      console.error("Error adding document: ", e);
    }

    Web

    // Add a second document with a generated ID.
    db.collection("users").add({
        first: "Alan",
        middle: "Mathison",
        last: "Turing",
        born: 1912
    })
    .then((docRef) => {
        console.log("Document written with ID: ", docRef.id);
    })
    .catch((error) => {
        console.error("Error adding document: ", error);
    });
    Swift
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    // Add a second document with a generated ID.
    do {
      let ref = try await db.collection("users").addDocument(data: [
        "first": "Alan",
        "middle": "Mathison",
        "last": "Turing",
        "born": 1912
      ])
      print("Document added with ID: \(ref.documentID)")
    } catch {
      print("Error adding document: \(error)")
    }
    Objective-C
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    // 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
    });
    Go
    _, _, 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

    Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz tutaj: Biblioteki klienta Cloud Firestore.

    $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);
    Unity
    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);
    Ruby
    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."

    Odczyt danych

    Korzystanie z transmisji danych przeglądarki w Konsola Firebase, aby szybko sprawdzić, czy dane zostały dodane do usługi Cloud Firestore.

    Możesz też użyć polecenia „get”, aby pobrać całą kolekcję.

    Web

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

    Web

    db.collection("users").get().then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(`${doc.id} => ${doc.data()}`);
        });
    });
    Swift
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    do {
      let snapshot = try await db.collection("users").getDocuments()
      for document in snapshot.documents {
        print("\(document.documentID) => \(document.data())")
      }
    } catch {
      print("Error getting documents: \(error)")
    }
    Objective-C
    Uwaga: ten produkt nie jest dostępny na urządzeniach docelowych watchOS i wycinków aplikacji.
    [[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());
    });
    Go
    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

    Więcej informacji o instalowaniu i tworzeniu klienta Cloud Firestore znajdziesz tutaj: Biblioteki klienta Cloud Firestore.

    $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);
    Unity
    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();
    }
    Ruby
    users_ref = firestore.col collection_path
    users_ref.get do |user|
      puts "#{user.document_id} data: #{user.data}."
    end

    Zabezpieczanie danych

    Jeśli używasz pakietu SDK na platformę internetową, Androida lub platformy Apple, użyj Firebase Uwierzytelnianie Cloud Firestore Security Rules, aby zabezpieczyć swoje dane Cloud Firestore.

    Oto kilka podstawowych zestawów reguł, od których możesz zacząć. Możesz modyfikować reguły zabezpieczeń na stronie Reguły w konsoli.

    Wymagane uwierzytelnienie

    // Allow read/write access to a document keyed by the user's UID
    service cloud.firestore {
      match /databases/{database}/documents {
        match /users/{uid} {
          allow read, write: if request.auth != null && request.auth.uid == uid;
        }
      }
    }
    

    Tryb blokady

    // Deny read/write access to all users under any conditions
    service cloud.firestore {
      match /databases/{database}/documents {
        match /{document=**} {
          allow read, write: if false;
        }
      }
    }
    

    Zanim wdrożysz aplikację internetową albo aplikację na Androida lub iOS w środowisku produkcyjnym, wykonaj też odpowiednie czynności aby mieć pewność, że tylko klienty aplikacji będą miały dostęp do danych w usłudze Cloud Firestore. Zapoznaj się z dokumentacją Sprawdzania aplikacji.

    Jeśli używasz jednego z pakietów SDK serwera, skorzystaj z funkcji Identity and Access Management (Uprawnienia) w celu zabezpieczenia danych. w aplikacji Cloud Firestore.

    Obejrzyj samouczek wideo

    Szczegółowe wskazówki, jak zacząć korzystać z Cloud Firestore , obejrzyj jeden z tych samouczków wideo:

    Sieć
    iOS+
    Android

    Więcej filmów znajdziesz w Firebase Kanał w YouTube.

    Dalsze kroki

    Pogłębiaj swoją wiedzę na następujące tematy:

    • Codelabs – dowiedz się, jak korzystać z Cloud Firestore w prawdziwej aplikacji: w programie na Androida, iOS lub Sieć.
    • Model danych – dowiedz się, jak dane są w strukturze Cloud Firestore, łącznie z danymi hierarchicznymi i kolekcjami podrzędnymi.
    • Dodawanie danych – więcej informacji o tworzeniu i aktualizowaniu danych znajdziesz w Cloud Firestore.
    • Pobieranie danych – dowiedz się więcej o tym, jak pobrać dane. i skalowalnych danych.
    • Wykonywanie prostych i złożonych zapytań – dowiedz się, jak uruchamiać zapytania proste i złożone.
    • Kolejność i ograniczanie zapytań Dowiedz się, jak zamówić kolejność. i ogranicz ilość danych zwracanych przez zapytania.