Penggunaan dan batasan

Gunakan panduan ini untuk memahami batas Cloud Firestore dan lihat Harga Cloud Firestore untuk penjelasan lengkap mengenai biaya Cloud Firestore, termasuk berbagai hal yang harus diperhatikan.

Memantau penggunaan

Untuk memantau penggunaan Cloud Firestore, buka tab Usage Cloud Firestore di Firebase console. Gunakan dasbor untuk mengukur penggunaan Anda selama jangka waktu yang berbeda.

Penggunaan mendetail pada Google Cloud Platform Console

Saat membuat project Firebase, Anda juga membuat project Google Cloud. Halaman Cloud Firestore API Quotas dan App Engine Quotas di Konsol Google Cloud melacak informasi kuota dan penggunaan Cloud Firestore.

Kuota gratis

Cloud Firestore menawarkan kuota gratis sehingga Anda dapat mulai menggunakan database (default) tanpa biaya. Jumlah kuota gratis tersebut tercantum di bawah ini. Jika memerlukan kuota lebih banyak, Anda harus mengaktifkan penagihan untuk project Google Cloud.

Kuota diterapkan setiap hari dan direset pada tengah malam waktu Pasifik.

Hanya database (default) yang memenuhi syarat untuk mendapatkan kuota gratis.

Paket gratis Kuota
Data tersimpan 1 GiB
Pembacaan dokumen 50.000 per hari
Penulisan dokumen 20.000 per hari
Penghapusan dokumen 20.000 per hari
Transfer data keluar 10 GiB per bulan

Operasi dan fitur berikut tidak mencakup penggunaan gratis. Anda harus mengaktifkan penagihan untuk menggunakan fitur ini:

  • Penggunaan database bernama (non-default)
  • Penghapusan TTL
  • Data PITR
  • Mencadangkan data
  • Operasi pemulihan

Untuk mengetahui informasi selengkapnya tentang cara penagihan fitur ini, lihat Harga penyimpanan.

Batas standar

Tabel berikut menunjukkan batas yang berlaku untuk Cloud Firestore. Ini adalah batas yang tidak dapat dilewati kecuali jika dinyatakan lain.

Database

Batas Detail
Jumlah maksimum database per project

100

Anda dapat menghubungi dukungan untuk meminta peningkatan batas ini.

Koleksi, dokumen, dan kolom

Batas Detail
Batasan pada ID koleksi
  • Harus berupa karakter UTF-8 yang valid
  • Tidak boleh lebih dari 1.500 byte
  • Tidak boleh berisi garis miring (/)
  • Tidak boleh hanya terdiri dari satu titik (.) atau dua titik (..)
  • Tidak boleh cocok dengan ekspresi reguler __.*__.
Kedalaman maksimum subkoleksi 100
Batasan pada ID dokumen
  • Harus berupa karakter UTF-8 yang valid
  • Tidak boleh lebih dari 1.500 byte
  • Tidak boleh berisi garis miring (/)
  • Tidak boleh hanya terdiri dari satu titik (.) atau dua titik (..)
  • Tidak boleh cocok dengan ekspresi reguler __.*__.
  • Jika Anda mengimpor entity Datastore ke database Firestore, ID entity numerik akan diekspos sebagai __id[0-9]+__
Ukuran maksimum untuk nama dokumen 6 KiB
Ukuran maksimum untuk dokumen 1 MiB (1.048.576 byte)
Batasan pada nama kolom Harus berupa karakter UTF-8 yang valid
Ukuran maksimum nama kolom 1.500 byte
Batasan pada jalur kolom
  • Harus memisahkan nama kolom dengan satu titik (.)
  • Dapat diteruskan sebagai string segmen (.) yang dipisahkan titik, dengan setiap segmen berupa nama kolom sederhana atau nama kolom kutipan (ditentukan di bawah).
Nama kolom sederhana adalah yang memenuhi semua kondisi berikut ini:
  • Hanya berisi karakter a-z, A-Z, 0-9, dan garis bawah (_)
  • Tidak diawali dengan 0-9
Nama kolom yang dikutip dimulai dan diakhiri dengan karakter tanda kutip tunggal terbalik (`). Misalnya, foo.`x&y` mengacu pada kolom x&y yang disusun bertingkatkan pada kolom foo. Untuk membuat nama kolom dengan karakter tanda kutip terbalik, tandai karakter tanda kutip terbalik tersebut dengan karakter garis miring terbalik (\). Untuk kemudahan, Anda dapat menghindari nama kolom yang dikutip dengan meneruskan jalur kolom sebagai objek FieldPath (misalnya, lihat JavaScript FieldPath).
Ukuran maksimum jalur kolom 1.500 byte
Ukuran maksimum nilai kolom 1 MiB - 89 byte (1.048.487 byte)
Kedalaman maksimum kolom dalam peta atau array

20

Kolom peta dan array menambahkan satu tingkat ke kedalaman keseluruhan objek. Misalnya, objek berikut memiliki total kedalaman tiga tingkat:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

Penulisan dan transaksi

Selain batas tersebut, Anda juga sebaiknya melihat praktik terbaik mendesain untuk penskalaan.

Batas Detail
Ukuran permintaan API maksimum 10 MiB
Batas waktu untuk transaksi 270 detik, dengan masa tenggang 60 detik

Indeks

Batas berikut berlaku untuk indeks kolom tunggal dan indeks gabungan:

Batas Detail
Jumlah maksimum indeks komposit untuk database
Jumlah maksimum konfigurasi kolom tunggal untuk database

Satu konfigurasi tingkat kolom dapat berisi beberapa konfigurasi untuk kolom yang sama. Misalnya, pengecualian pengindeksan kolom tunggal dan kebijakan TTL pada kolom yang sama dihitung sebagai satu konfigurasi kolom terhadap batas.

Jumlah maksimum entri indeks untuk setiap dokumen

40.000

Jumlah entri indeks adalah jumlah hal berikut untuk dokumen:

  • Jumlah entri indeks kolom tunggal
  • Jumlah entri indeks komposit

Untuk melihat cara Cloud Firestore mengubah dokumen dan kumpulan indeks menjadi entri indeks, lihat contoh jumlah entri indeks ini.

Jumlah maksimum kolom dalam indeks komposit 100
Ukuran maksimum entri indeks

7,5 KiB

Untuk melihat cara Cloud Firestore menghitung ukuran entri indeks, lihat ukuran entri indeks.

Jumlah maksimum ukuran entri indeks pada dokumen

8 MiB

Ukuran total adalah jumlah hal berikut untuk dokumen:

  • Jumlah ukuran entri indeks kolom tunggal pada dokumen
  • Jumlah ukuran entri indeks komposit pada dokumen
  • Ukuran maksimum nilai kolom terindeks

    1.500 byte

    Nilai kolom di atas 1.500 byte akan terpotong. Kueri yang mencakup nilai kolom terpotong dapat menampilkan hasil yang tidak konsisten.

    Time to live (TTL)

    Batas Detail
    Jumlah maksimum konfigurasi kolom tunggal untuk database

    Satu konfigurasi tingkat kolom dapat berisi beberapa konfigurasi untuk kolom yang sama. Misalnya, pengecualian pengindeksan kolom tunggal dan kebijakan TTL pada kolom yang sama dihitung sebagai satu konfigurasi kolom terhadap batas.

    Ekspor/Impor

    Batas berikut berlaku untuk operasi impor dan ekspor terkelola:

    Batas Detail
    Jumlah total maksimum permintaan ekspor dan impor untuk project yang diizinkan per menit 20
    Jumlah maksimum ekspor dan impor serentak 50
    Jumlah maksimum filter ID koleksi untuk permintaan ekspor dan impor 100

    Aturan keamanan

    Batas Detail
    Jumlah maksimum panggilan exists(), get(), dan getAfter() per permintaan
    • 10 untuk permintaan dokumen tunggal dan permintaan kueri.
    • 20 untuk pembacaan, transaksi, dan penulisan batch multidokumen. Batas 10 sebelumnya juga berlaku untuk setiap operasi.

      Misalnya, bayangkan Anda membuat permintaan penulisan batch dengan 3 operasi penulisan, dan aturan keamanan menggunakan 2 panggilan akses dokumen untuk memvalidasi setiap penulisan. Dalam hal ini, setiap penulisan menggunakan 2 dari 10 panggilan aksesnya dan permintaan penulisan batch menggunakan 6 dari 20 panggilan aksesnya.

    Melebihi salah satu batas akan menyebabkan error izin ditolak.

    Beberapa panggilan akses dokumen dapat disimpan dalam cache, dan panggilan yang disimpan dalam cache tidak diperhitungkan dalam batas tersebut.

    Kedalaman maksimum pernyataan match bertingkat 10
    Panjang jalur maksimum, pada segmen jalur, yang diizinkan dalam sekumpulan pernyataan match bertingkat 100
    Jumlah maksimum variabel tangkapan jalur yang diizinkan dalam sekumpulan pernyataan match bertingkat 20
    Kedalaman maksimum panggilan fungsi 20
    Jumlah maksimum argumen fungsi 7
    Jumlah maksimum binding variabel let per fungsi 10
    Jumlah maksimum panggilan fungsi siklis atau berulang 0 (tidak diizinkan)
    Jumlah maksimum ekspresi yang dievaluasi per permintaan 1.000
    Ukuran maksimum kumpulan aturan Kumpulan aturan harus mematuhi dua batas ukuran:
    • Batas 256 KB pada ukuran sumber teks kumpulan aturan yang dipublikasikan dari Firebase console atau dari CLI menggunakan firebase deploy.
    • Batas 250 KB pada ukuran kumpulan aturan yang dikompilasi yang dihasilkan saat Firebase memproses sumber dan menjadikannya aktif di back-end.

    Mengelola pengeluaran

    Untuk membantu menghindari biaya yang tidak terduga pada tagihan Anda, tetapkan anggaran bulanan dan pemberitahuan.

    Menetapkan anggaran bulanan

    Untuk melacak biaya Cloud Firestore, buat anggaran bulanan di Google Cloud Console. Anggaran tidak akan membatasi penggunaan, tetapi Anda dapat menyiapkan pemberitahuan saat Anda mendekati atau melampaui biaya yang direncanakan untuk bulan tersebut.

    Untuk menetapkan anggaran, buka bagian Billing di Konsol Google Cloud dan buat anggaran untuk akun Penagihan Cloud Anda. Anda dapat menggunakan setelan pemberitahuan default atau mengubahnya untuk mengirim notifikasi saat mencapai persentase tertentu anggaran bulanan Anda.

    Pelajari lebih lanjut cara menyiapkan anggaran dan pemberitahuan anggaran.