Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Memulai Cloud Firestore

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan memulai ini menunjukkan cara menyiapkan Cloud Firestore, menambahkan data, lalu melihat data yang baru saja Anda tambahkan di Firebase console.

Buat database Cloud Firestore

  1. Jika Anda belum melakukannya, buat proyek Firebase: Di konsol Firebase , klik Tambahkan proyek , lalu ikuti petunjuk di layar untuk membuat proyek Firebase atau menambahkan layanan Firebase ke proyek GCP yang sudah ada.

  2. Buka bagian Cloud Firestore di konsol Firebase . Anda akan diminta untuk memilih project Firebase yang ada. Ikuti alur kerja pembuatan database.

  3. Pilih mode awal untuk Aturan Keamanan Cloud Firestore Anda:

    Modus uji

    Baik untuk memulai dengan pustaka klien seluler dan web, tetapi mengizinkan siapa saja untuk membaca dan menimpa data Anda. Setelah pengujian, pastikan untuk meninjau bagian Amankan data Anda .

    Untuk memulai dengan web, platform Apple, atau Android SDK, pilih mode pengujian.

    Modus terkunci

    Menolak semua operasi baca dan tulis dari klien seluler dan web. Server aplikasi terotentikasi Anda (C#, Go, Java, Node.js, PHP, Python, atau Ruby) masih dapat mengakses database Anda.

    Untuk memulai dengan pustaka klien server C#, Go, Java, Node.js, PHP, Python, atau Ruby, pilih mode terkunci.

  4. Pilih lokasi untuk database Anda.

    • Setelan lokasi ini adalah lokasi resource Google Cloud Platform (GCP) default project Anda. Perhatikan bahwa lokasi ini akan digunakan untuk layanan GCP di project Anda yang memerlukan setelan lokasi, khususnya, bucket Cloud Storage default dan aplikasi App Engine Anda (yang diperlukan jika Anda menggunakan Cloud Scheduler).

    • Jika Anda tidak dapat memilih lokasi, project Anda sudah memiliki lokasi resource GCP default. Itu disetel baik selama pembuatan proyek atau saat menyiapkan layanan lain yang memerlukan pengaturan lokasi.

  5. Klik Selesai .

Saat Anda mengaktifkan Cloud Firestore, ini juga mengaktifkan API di Cloud API Manager .

Siapkan lingkungan pengembangan Anda

Tambahkan dependensi dan pustaka klien yang diperlukan ke aplikasi Anda.

Web version 8

  1. Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Web Anda .
  2. Tambahkan pustaka Firebase dan Cloud Firestore ke aplikasi Anda:
    <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>
    SDK Cloud Firestore juga tersedia sebagai paket npm.
    npm install firebase@8.10.1 --save
    
    Anda harus meminta Firebase dan Cloud Firestore secara manual.
    const firebase = require("firebase");
    // Required for side-effects
    require("firebase/firestore");
    

Web version 9

  1. Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Web Anda .
  2. Cloud Firestore SDK tersedia sebagai paket npm.
    npm install firebase@9.16.0 --save
    
    Anda harus mengimpor Firebase dan Cloud Firestore.
    import { initializeApp } from "firebase/app";
    import { getFirestore } from "firebase/firestore";
    
iOS+

Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Apple Anda .

Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.

  1. Di Xcode, dengan proyek aplikasi Anda terbuka, arahkan ke File > Swift Packages > Add Package Dependency .
  2. Saat diminta, tambahkan repositori SDK platform Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Pilih pustaka Firestore.
  5. Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.

Kotlin+KTX

  1. Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Android Anda .
  2. Dengan menggunakan Firebase Android BoM , deklarasikan dependensi untuk library Android Cloud Firestore dalam file Gradle modul (level aplikasi) Anda (biasanya app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.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-ktx'
    }
    

    Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi pustaka Android Firebase yang kompatibel.

    (Alternatif) Deklarasikan dependensi library Firebase tanpa menggunakan BoM

    Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

    Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

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

Java

  1. Ikuti petunjuk untuk menambahkan Firebase ke aplikasi Android Anda .
  2. Dengan menggunakan Firebase Android BoM , deklarasikan dependensi untuk library Android Cloud Firestore dalam file Gradle modul (level aplikasi) Anda (biasanya app/build.gradle ).
    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:31.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'
    }
    

    Dengan menggunakan Firebase Android BoM , aplikasi Anda akan selalu menggunakan versi pustaka Android Firebase yang kompatibel.

    (Alternatif) Deklarasikan dependensi library Firebase tanpa menggunakan BoM

    Jika Anda memilih untuk tidak menggunakan Firebase BoM, Anda harus menentukan setiap versi pustaka Firebase di baris dependensinya.

    Perhatikan bahwa jika Anda menggunakan beberapa pustaka Firebase di aplikasi Anda, kami sangat menyarankan penggunaan BoM untuk mengelola versi pustaka, yang memastikan bahwa semua versi kompatibel.

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

Dart

  1. Jika Anda belum melakukannya, konfigurasikan dan inisialisasi Firebase di aplikasi Flutter Anda.
  2. Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin:
    flutter pub add cloud_firestore
  3. Setelah selesai, buat ulang aplikasi Flutter Anda:
    flutter run
  4. Opsional: Tingkatkan waktu pembuatan iOS & macOS dengan menyertakan kerangka kerja yang telah dikompilasi sebelumnya.

    Saat ini, Firestore SDK untuk iOS bergantung pada kode yang memerlukan waktu hingga 5 menit untuk dibuat di Xcode. Untuk mengurangi waktu build secara signifikan, Anda dapat menggunakan versi yang telah dikompilasi sebelumnya dengan menambahkan baris ini ke blok target 'Runner' do di Podfile Anda:

    target 'Runner' do
      pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.15.0'
      # ...
    end

    Selain itu, pastikan Anda telah memutakhirkan CocoaPods ke 1.9.1 atau lebih tinggi:

    gem install cocoapods

    Untuk informasi lebih lanjut, lihat masalah di GitHub .

Jawa
  1. Tambahkan Firebase Admin SDK ke aplikasi Anda:
    • Menggunakan Gradle: l10n
      compile 'com.google.firebase:firebase-admin:1.32.0'
      
    • Menggunakan Maven:
      <dependency>
        <groupId>com.google.firebase</groupId>
        <artifactId>firebase-admin</artifactId>
        <version>1.32.0</version>
      </dependency>
           
  2. Ikuti petunjuk di bawah untuk menginisialisasi Cloud Firestore dengan kredensial yang sesuai di lingkungan Anda.
Piton
  1. Tambahkan Firebase Admin SDK ke aplikasi Python Anda:
    pip install --upgrade firebase-admin
  2. Ikuti petunjuk di bawah untuk menginisialisasi Cloud Firestore dengan kredensial yang sesuai di lingkungan Anda.
C++
  1. Ikuti petunjuk untuk menambahkan Firebase ke proyek C++ Anda .
  2. Antarmuka C++ untuk Android.
    • dependensi gradasi. Tambahkan berikut ini ke file Gradle modul (level aplikasi) Anda (biasanya app/build.gradle ): l10n
              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
              }
              
    • Ketergantungan biner. Demikian pula, cara yang disarankan untuk mendapatkan dependensi biner adalah dengan menambahkan kode berikut ke file CMakeLists.txt Anda: l10n
              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. Untuk menyiapkan integrasi desktop , lihat Tambahkan Firebase ke proyek C++ Anda .
Persatuan
  1. Ikuti petunjuk untuk menambahkan Firebase ke proyek Unity Anda .
  2. Antarmuka persatuan untuk Android.
  3. Saat membuat untuk Android, aktifkan ProGuarding untuk menghindari batas Android DEX. Untuk melakukannya, di editor Unity:

    1. Pilih File > Bangun Pengaturan
    2. Ganti 'Platform' ke 'Android' dan klik 'Ganti Platform'
    3. Klik 'Pengaturan Pemain...'
    4. Di UI Unity utama, di bawah 'Pengaturan untuk Android', pilih 'Pengaturan Penerbitan'
    5. Di bawah bagian 'Perkecil', ubah pengaturan Rilis dan Debug dari 'Tidak Ada' menjadi 'ProGuard'
Node.js
  1. Tambahkan Firebase Admin SDK ke aplikasi Anda:
    npm install firebase-admin --save
  2. Ikuti petunjuk di bawah untuk menginisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
Pergi
  1. Tambahkan Firebase Admin SDK ke aplikasi Go Anda:
    go get firebase.google.com/go
    
  2. Ikuti petunjuk di bawah untuk menginisialisasi Cloud Firestore dengan kredensial yang tepat di lingkungan Anda.
PHP
  1. Pustaka klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk autentikasi.
    • Untuk mengautentikasi dari lingkungan pengembangan Anda, setel variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS agar mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Kredensial Konsol API .
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • Di lingkungan produksi, Anda tidak perlu mengautentikasi jika menjalankan aplikasi di App Engine atau Compute Engine, menggunakan project yang sama dengan yang Anda gunakan untuk Cloud Firestore. Jika tidak, siapkan akun layanan .
  2. Instal dan aktifkan ekstensi gRPC untuk PHP, yang Anda perlukan untuk menggunakan pustaka klien.
  3. Tambahkan library Cloud Firestore PHP ke aplikasi Anda:
    composer require google/cloud-firestore
C#
  1. Pustaka klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk autentikasi.
    • Untuk mengautentikasi dari lingkungan pengembangan Anda, setel variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS agar mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Kredensial Konsol API .
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • Di lingkungan produksi, Anda tidak perlu mengautentikasi jika menjalankan aplikasi di App Engine atau Compute Engine, menggunakan project yang sama dengan yang Anda gunakan untuk Cloud Firestore. Jika tidak, siapkan akun layanan .
  2. Tambahkan library Cloud Firestore C# ke aplikasi Anda di file .csproj Anda:
    <ItemGroup>
      <PackageReference Include="Google.Cloud.Firestore" Version="1.1.0-beta01" />
    </ItemGroup>
  3. Tambahkan berikut ini ke file Program.cs Anda:
    using Google.Cloud.Firestore;
Rubi
  1. Pustaka klien server Cloud Firestore (Java, Node.js, Python, Go, PHP, C#, dan Ruby) menggunakan Kredensial Default Aplikasi Google untuk autentikasi.
    • Untuk mengautentikasi dari lingkungan pengembangan Anda, setel variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS agar mengarah ke file kunci akun layanan JSON. Anda dapat membuat file kunci di halaman Kredensial Konsol API .
      export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
    • Di lingkungan produksi, Anda tidak perlu mengautentikasi jika menjalankan aplikasi di App Engine atau Compute Engine, menggunakan project yang sama dengan yang Anda gunakan untuk Cloud Firestore. Jika tidak, siapkan akun layanan .
  2. Tambahkan library Cloud Firestore Ruby ke aplikasi Anda di Gemfile Anda : l10n
    gem "google-cloud-firestore"
  3. Instal dependensi dari Gemfile Anda menggunakan: l10n
    bundle install

(Opsional) Membuat prototipe dan menguji dengan Firebase Local Emulator Suite

Untuk developer seluler, sebelum berbicara tentang cara aplikasi Anda menulis ke dan membaca dari Cloud Firestore, mari perkenalkan seperangkat alat yang dapat Anda gunakan untuk membuat prototipe dan menguji fungsionalitas Cloud Firestore: Firebase Local Emulator Suite. Jika Anda mencoba model data yang berbeda, mengoptimalkan aturan keamanan, atau berupaya menemukan cara yang paling hemat biaya untuk berinteraksi dengan back-end, dapat bekerja secara lokal tanpa menggunakan layanan langsung bisa menjadi ide bagus.

Emulator Cloud Firestore adalah bagian dari Local Emulator Suite, yang memungkinkan aplikasi Anda untuk berinteraksi dengan konten dan konfigurasi database yang diemulasi, serta sumber daya project yang diemulasi (fungsi, database lain, dan aturan keamanan).

Menggunakan emulator Cloud Firestore hanya memerlukan beberapa langkah:

  1. Menambahkan baris kode ke konfigurasi pengujian aplikasi Anda untuk terhubung ke emulator.
  2. Dari root direktori proyek lokal Anda, jalankan firebase emulators:start .
  3. Melakukan panggilan dari kode prototipe aplikasi Anda menggunakan SDK platform Cloud Firestore seperti biasa.

Panduan mendetail yang melibatkan Cloud Firestore dan Cloud Functions tersedia. Anda juga harus melihat pengenalan Local Emulator Suite .

Inisialisasi Cloud Firestore

Menginisialisasi instance Cloud Firestore:

Web version 9

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

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

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


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

Ganti FIREBASE_CONFIGURATION dengan firebaseConfig aplikasi web Anda.

Untuk mempertahankan data saat perangkat kehilangan koneksinya, lihat dokumentasi Aktifkan Data Offline .

Web version 8

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

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

// Initialize Firebase
firebase.initializeApp(firebaseConfig);


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

Ganti FIREBASE_CONFIGURATION dengan firebaseConfig aplikasi web Anda.

Untuk mempertahankan data saat perangkat kehilangan koneksinya, lihat dokumentasi Aktifkan Data Offline .

Cepat
Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
import FirebaseCore
import FirebaseFirestore
FirebaseApp.configure()

let db = Firestore.firestore()
Objective-C
Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
@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;
Jawa
Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .
  • Inisialisasi di 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();
    
  • Inisialisasi di server Anda sendiri

    Untuk menggunakan Firebase Admin SDK di server Anda sendiri, gunakan akun layanan .

    Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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();
    
  • Piton
    Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .
  • Inisialisasi di Google Cloud
    import firebase_admin
    from firebase_admin import firestore
    
    # Application Default credentials are automatically created.
    app = firebase_admin.initialize_app()
    db = firestore.client()

    Kredensial default aplikasi yang ada juga dapat digunakan untuk menginisialisasi SDK.

    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()
  • Inisialisasi di server Anda sendiri

    Untuk menggunakan Firebase Admin SDK di server Anda sendiri, gunakan akun layanan .

    Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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

    Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .
  • Inisialisasi di 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()

    Kredensial default aplikasi yang ada juga dapat digunakan untuk menginisialisasi SDK.

    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()
  • Inisialisasi di server Anda sendiri

    Untuk menggunakan Firebase Admin SDK di server Anda sendiri, gunakan akun layanan .

    Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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
    Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .
    • Inisialisasi pada Cloud Functions
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
      initializeApp();
      
      const db = getFirestore();
      
    • Inisialisasi di Google Cloud
      const { initializeApp, applicationDefault, cert } = require('firebase-admin/app');
      const { getFirestore, Timestamp, FieldValue } = require('firebase-admin/firestore');
      initializeApp({
        credential: applicationDefault()
      });
      
      const db = getFirestore();
    • Inisialisasi di server Anda sendiri

      Untuk menggunakan Firebase Admin SDK di server Anda sendiri (atau lingkungan Node.js lainnya), gunakan akun layanan . Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi SDK:

      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();
      
    Pergi
    Cloud Firestore SDK diinisialisasi dengan berbagai cara bergantung pada lingkungan Anda. Di bawah ini adalah metode yang paling umum. Untuk referensi lengkap, lihat Menginisialisasi Admin SDK .
  • Inisialisasi di 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()
    
  • Inisialisasi di server Anda sendiri

    Untuk menggunakan Firebase Admin SDK di server Anda sendiri, gunakan akun layanan .

    Buka IAM & admin > Akun layanan di konsol Google Cloud. Hasilkan kunci pribadi baru dan simpan file JSON. Kemudian gunakan file tersebut untuk menginisialisasi 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

    Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien 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);
        }
    }
    Persatuan
    using Firebase.Firestore;
    using Firebase.Extensions;
    FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
    C#

    C#

    Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien Cloud Firestore .

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

    Tambahkan data

    Cloud Firestore menyimpan data di Dokumen, yang disimpan di Koleksi. Cloud Firestore membuat koleksi dan dokumen secara implisit saat pertama kali Anda menambahkan data ke dokumen. Anda tidak perlu membuat koleksi atau dokumen secara eksplisit.

    Buat koleksi baru dan dokumen menggunakan kode contoh berikut.

    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);
    });
    Cepat
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    // 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)")
        }
    }
    Objective-C
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    // 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}'));
    Jawa
    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());
    Piton
    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
    });
    Pergi
    _, _, 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

    Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien 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);
    Persatuan
    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);
    Rubi
    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."

    Sekarang tambahkan dokumen lain ke koleksi users . Perhatikan bahwa dokumen ini menyertakan key-value pair (nama tengah) yang tidak muncul di dokumen pertama. Dokumen dalam koleksi dapat berisi kumpulan informasi yang berbeda.

    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);
    });
    Cepat
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    // 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)")
        }
    }
    Objective-C
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    // 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}'));
    Jawa
    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());
    Piton
    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
    });
    Pergi
    _, _, 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

    Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien 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);
    Persatuan
    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);
    Rubi
    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."

    Membaca data

    Untuk memverifikasi dengan cepat bahwa Anda telah menambahkan data ke Cloud Firestore, gunakan penampil data di konsol Firebase .

    Anda juga dapat menggunakan metode "dapatkan" untuk mengambil seluruh koleksi.

    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()}`);
        });
    });
    Cepat
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    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())")
            }
        }
    }
    Objective-C
    Catatan: Produk ini tidak tersedia di watchOS dan target Cuplikan Aplikasi.
    [[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()}");
      }
    });
    Jawa
    // 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"));
    }
    Piton
    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());
    });
    Pergi
    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

    Untuk mengetahui selengkapnya tentang menginstal dan membuat klien Cloud Firestore, lihat Perpustakaan Klien 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);
    Persatuan
    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();
    }
    Rubi
    users_ref = firestore.col collection_path
    users_ref.get do |user|
      puts "#{user.document_id} data: #{user.data}."
    end

    Amankan data Anda

    Jika Anda menggunakan SDK platform Web, Android, atau Apple, gunakan Firebase Authentication dan Aturan Keamanan Cloud Firestore untuk mengamankan data Anda di Cloud Firestore.

    Berikut adalah beberapa kumpulan aturan dasar yang dapat Anda gunakan untuk memulai. Anda dapat mengubah aturan keamanan Anda di tab Aturan di konsol.

    Autentikasi diperlukan

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

    Modus terkunci

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

    Modus uji

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

    Sebelum Anda menerapkan aplikasi Web, Android, atau iOS ke produksi, lakukan juga langkah-langkah untuk memastikan bahwa hanya klien aplikasi Anda yang dapat mengakses data Cloud Firestore Anda. Lihat dokumentasi App Check .

    Jika Anda menggunakan salah satu SDK server, gunakan Identity and Access Management (IAM) untuk mengamankan data Anda di Cloud Firestore.

    Tonton video tutorialnya

    Untuk panduan mendetail tentang cara memulai library klien seluler Cloud Firestore, tonton salah satu tutorial video berikut:

    Web
    iOS+
    Android

    Anda dapat menemukan lebih banyak video di saluran YouTube Firebase .

    Langkah selanjutnya

    Perdalam pengetahuan Anda dengan topik-topik berikut:

    • Codelabs — Pelajari cara menggunakan Cloud Firestore di aplikasi nyata dengan mengikuti codelab untuk Android , iOS , atau Web .
    • Model data — Pelajari lebih lanjut cara data disusun di Cloud Firestore, termasuk data hierarkis dan subkoleksi.
    • Tambahkan data — Pelajari lebih lanjut cara membuat dan memperbarui data di Cloud Firestore.
    • Dapatkan data — Pelajari lebih lanjut tentang cara mengambil data.
    • Melakukan kueri sederhana dan gabungan — Pelajari cara menjalankan kueri sederhana dan gabungan.
    • Memesan dan membatasi kueri Pelajari cara mengurutkan dan membatasi data yang dikembalikan oleh kueri Anda.