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

Tipe data yang didukung

Halaman ini menjelaskan jenis data yang didukung Cloud Firestore.

Tipe data

Tabel berikut mencantumkan jenis data yang didukung oleh Cloud Firestore. Ini juga menjelaskan tata urutan yang digunakan saat membandingkan nilai dari tipe yang sama:

Tipe data Sortir pesanan Catatan
Himpunan Dengan nilai elemen

Array tidak dapat berisi nilai array lain sebagai salah satu elemennya.

Di dalam array, elemen mempertahankan posisi yang ditetapkan untuknya. Saat mengurutkan dua atau lebih larik, larik diurutkan berdasarkan nilai elemennya.

Saat membandingkan dua larik, elemen pertama dari setiap larik akan dibandingkan. Jika unsur pertama sama, maka unsur kedua dibandingkan dan seterusnya sampai ditemukan perbedaan. Jika array kehabisan elemen untuk dibandingkan tetapi sama sampai titik itu, maka array yang lebih pendek diurutkan sebelum array yang lebih panjang.

Misalnya, [1, 2, 3] < [1, 2, 3, 1] < [2] . Larik [2] memiliki nilai elemen pertama terbesar. Array [1, 2, 3] memiliki elemen yang sama dengan tiga elemen pertama [1, 2, 3, 1] tetapi lebih pendek.

Boolean false < true
Byte Urutan byte Hingga 1.048.487 byte (1 MiB - 89 byte). Hanya 1.500 byte pertama yang dipertimbangkan oleh kueri.
Tanggal dan waktu Kronologis Saat disimpan di Cloud Firestore, hanya berpresisi hingga mikrodetik; presisi tambahan apa pun dibulatkan ke bawah.
Angka floating-point Numerik Presisi ganda 64-bit, IEEE 754.
Titik geografis Berdasarkan garis lintang, lalu garis bujur Saat ini kami tidak menyarankan penggunaan tipe data ini karena keterbatasan kueri. Biasanya lebih baik menyimpan lintang dan bujur sebagai bidang numerik terpisah. Jika aplikasi Anda memerlukan geokueri berbasis jarak sederhana, lihat Kueri geo
Bilangan bulat Numerik 64-bit, ditandatangani
Peta Dengan kunci, lalu dengan nilai

Merupakan objek tertanam dalam dokumen. Saat diindeks, Anda dapat melakukan kueri pada subbidang. Jika Anda mengecualikan nilai ini dari pengindeksan, semua subbidang juga dikecualikan dari pengindeksan.

Urutan kunci selalu disortir. Misalnya, jika Anda menulis {c: "foo", a: "bar", b: "qux"} peta diurutkan berdasarkan kunci dan disimpan sebagai {a: "bar", b: "qux", c: "foo"} .

Bidang peta diurutkan berdasarkan kunci dan dibandingkan dengan pasangan kunci-nilai, pertama-tama membandingkan kunci dan kemudian nilainya. Jika pasangan nilai kunci pertama sama, pasangan nilai kunci berikutnya dibandingkan, dan seterusnya. Jika dua peta dimulai dengan key-value pair yang sama, panjang peta akan dipertimbangkan. Misalnya, peta berikut dalam urutan menaik:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

Batal Tidak ada
Referensi Berdasarkan elemen jalur (koleksi, ID dokumen, koleksi, ID dokumen...) Misalnya, projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] .
Untaian teks urutan byte yang disandikan UTF-8 Hingga 1.048.487 byte (1 MiB - 89 byte). Hanya 1.500 byte pertama dari representasi UTF-8 yang dipertimbangkan oleh kueri.

Pengurutan tipe nilai

Saat kueri melibatkan kolom dengan nilai tipe campuran, Cloud Firestore menggunakan pengurutan deterministik berdasarkan representasi internal. Daftar berikut menunjukkan urutannya:

  1. Nilai nol
  2. Nilai Boolean
  3. Nilai integer dan floating-point, diurutkan dalam urutan numerik
  4. Nilai tanggal
  5. Nilai string teks
  6. Nilai byte
  7. Referensi Cloud Firestore
  8. Nilai titik geografis
  9. Nilai larik
  10. Nilai peta