Memilih Database: Cloud Firestore atau Realtime Database

Firebase menawarkan dua database dokumen berbasis cloud yang dapat diakses klien. Pelanggan baru sebaiknya memulai dengan Cloud Firestore:

  • Cloud Firestore adalah database dokumen yang kompatibel dengan JSON tingkat perusahaan yang direkomendasikan dan dipercaya oleh lebih dari 250.000 developer. Database ini cocok untuk aplikasi dengan model data lengkap yang memerlukan kemampuan kueri, skalabilitas, dan ketersediaan tinggi. API ini juga menawarkan sinkronisasi klien berlatensi rendah dan akses data offline.

  • Realtime Database adalah database JSON Firebase klasik. Database ini cocok untuk aplikasi dengan model data sederhana yang memerlukan pencarian sederhana dan sinkronisasi latensi rendah dengan skalabilitas terbatas.

Apa saja hal penting lainnya yang perlu dipertimbangkan?

Setelah memikirkan pertimbangan utama sebelumnya, Anda mungkin siap untuk memilih database. Jika Anda masih mempertimbangkan kelebihan dan kekurangan, bagian ini membahas perbedaan lain antara Cloud Firestore dan Realtime Database.

Model data

Realtime Database dan Cloud Firestore merupakan Database NoSQL.

Cloud Firestore [ PILIHAN ] Realtime Database
Menyimpan data sebagai koleksi dokumen.
  • Data sederhana mudah disimpan dalam dokumen, yang sangat mirip dengan JSON.
  • Data kompleks dan hierarkis lebih mudah disusun dalam skala besar, menggunakan subkoleksi dalam dokumen.
  • Membutuhkan lebih sedikit denormalisasi dan perataan data.

Pelajari lebih lanjut Model data Cloud Firestore.

Menyimpan data sebagai satu hierarki JSON yang besar.
  • Data sederhana sangat mudah disimpan.
  • Data kompleks dan hierarkis lebih sulit disusun dalam skala besar.

Pelajari lebih lanjut Model data Realtime Database.

Dukungan real-time dan offline

Keduanya memiliki SDK real-time dan memprioritaskan aplikasi seluler. Selain itu, keduanya juga mendukung penyimpanan data lokal untuk aplikasi siap offline.

Cloud Firestore [ PILIHAN ] Realtime Database
Dukungan offline untuk klien Apple, Android, dan web. Dukungan offline untuk klien Apple dan Android.

Kehadiran

Mengetahui saat klien online atau offline bisa bermanfaat. Firebase Realtime Database dapat merekam status koneksi klien dan menyediakan info terbaru setiap kali status koneksi klien berubah.

Cloud Firestore [ PILIHAN ] Realtime Database
Tidak didukung secara native. Di Realtime Database, Anda dapat membangun dukungan untuk kehadiran dengan menyinkronkan Cloud Firestore dan Realtime Database menggunakan Cloud Functions Lihat Membangun kehadiran di Cloud Firestore. Kehadiran didukung.

Membuat kueri

Mengambil, mengurutkan, dan memfilter data dari salah satu database melalui kueri.

Cloud Firestore [ PILIHAN ] Realtime Database
Kueri terindeks dengan pengurutan dan pemfilteran gabungan.
  • Anda dapat merangkai filter serta menggabungkan pemfilteran dan pengurutan pada properti dalam satu kueri.
  • Kueri bersifat dangkal: hanya menampilkan dokumen dalam koleksi atau grup koleksi tertentu, dan tidak menampilkan data subkoleksi.
  • Kueri harus selalu menampilkan keseluruhan dokumen.
  • Kueri diindeks secara default: Performa kueri sebanding dengan ukuran kumpulan hasil, bukan set data.
Kueri mendalam dengan fitur pengurutan dan pemfilteran terbatas.
  • Kueri dapat mengurutkan atau memfilter properti, tetapi tidak bisa sekaligus.
  • Kueri bersifat mendalam secara default: Kueri selalu menampilkan keseluruhan subhierarki.
  • Kueri dapat mengakses data pada level perincian apa pun, hingga ke setiap nilai node dalam hierarki JSON.
  • Kueri tidak memerlukan indeks; namun performa kueri tertentu akan menurun saat set data Anda bertambah.

Penulisan dan transaksi

Cloud Firestore [ PILIHAN ] Realtime Database
Operasi tulis dan transaksi lanjutan.
  • Operasi menulis data melalui operasi set dan update, serta melalui transformasi lanjutan seperti operator array dan numerik.
  • Transaksi dapat membaca dan menulis data secara atomik dari bagian mana pun dalam database.
Operasi tulis dan transaksi dasar.

Keandalan dan performa

Cloud Firestore [ PILIHAN ] Realtime Database
Cloud Firestore adalah solusi regional dan multi-region yang mendukung penskalaan otomatis.
  • Solusi latensi rendah, dengan waktu respons biasanya tidak lebih dari 30 milidetik.
  • Menyimpan data Anda di beberapa pusat data di region yang berbeda, sehingga memastikan skalabilitas global dan keandalan yang kuat.
  • Tersedia dalam konfigurasi regional atau multiregional di seluruh dunia.
Baca lebih lanjut karakteristik performa dan keandalan Cloud Firestore dalam Perjanjian Tingkat Layanan.
Realtime Database adalah solusi regional.
  • Tersedia dalam konfigurasi regional. Database terbatas sesuai ketersediaan menurut zona dalam satu region.
  • Latensi sangat rendah, dengan waktu respons biasanya tidak lebih dari 10 milidetik. Opsi ideal untuk sinkronisasi status yang sering.
Baca lebih lanjut karakteristik performa dan keandalan Realtime Database dalam Perjanjian Tingkat Layanan.

Waktu beroperasi

Cloud Firestore [ PILIHAN ] Realtime Database
Performa waktu beroperasi yang sangat tinggi.
  • Performa waktu beroperasi biasanya sebesar 99,999%.
  • Jika ketersediaan adalah hal yang paling penting, misalnya dalam aplikasi e-commerce, gunakan Cloud Firestore.
Performa waktu beroperasi yang tinggi.
  • Performa waktu beroperasi rata-rata sebesar 99,95%.

Skalabilitas

Cloud Firestore [ PILIHAN ] Realtime Database
Penskalaan berjalan otomatis.
  • Penskalaan sepenuhnya berjalan otomatis. Batas penskalaan adalah sekitar 1 juta koneksi serentak dan 10.000 penulisan/detik. Kami berencana meningkatkan batas ini di masa mendatang.
  • Memiliki batasan kecepatan tulis untuk setiap dokumen atau indeks.
Penskalaan membutuhkan sharding.
  • Melakukan penskalaan hingga mencapai sekitar 200.000 koneksi serentak dan 1.000 penulisan/detik dalam satu database. Penskalaan yang lebih besar daripada itu memerlukan sharding data lintas database.
  • Tidak ada batasan lokal kecepatan penulisan untuk setiap data.

Keamanan

Cloud Firestore [ PILIHAN ] Realtime Database
Aturan yang tidak bersifat menurun yang menggabungkan otorisasi dan validasi.
  • Operasi baca dan tulis dari SDK seluler yang dilindungi oleh Cloud Firestore Security Rules.
  • Operasi baca dan tulis dari SDK server yang dilindungi oleh Identity and Access Management (IAM).
  • Aturan tidak bersifat menurun, kecuali jika Anda menggunakan karakter pengganti.
  • Aturan dapat membatasi kueri: Jika hasil suatu kueri mungkin berisi data yang tidak dapat diakses oleh pengguna, keseluruhan kueri akan gagal.
Bahasa aturan yang bersifat menurun yang memisahkan otorisasi dan validasi.

Harga

Kedua solusi tersedia dalam paket harga Spark dan Blaze.

Cloud Firestore [ PILIHAN ] Realtime Database
Mengenakan biaya terutama pada operasi yang dilakukan di database Anda (baca, tulis, hapus), serta pada bandwidth dan penyimpanan dengan tarif lebih rendah.

Cloud Firestore mendukung batas pengeluaran harian untuk project App Engine, sehingga biayanya dipastikan tidak akan melampaui anggaran Anda.

Baca lebih lanjut paket harga Cloud Firestore.

Mengenakan biaya hanya untuk bandwidth dan penyimpanan, tetapi dengan tarif lebih tinggi.

Baca lebih lanjut paket harga Realtime Database.

Menggunakan Cloud Firestore dan Realtime Database

Anda dapat menggunakan kedua database ini dalam aplikasi atau project Firebase yang sama. Kedua database NoSQL ini dapat menyimpan jenis data yang sama dan library kliennya berfungsi dengan cara yang sama. Ingatlah perbedaan yang diuraikan sebelumnya jika Anda memutuskan untuk menggunakan kedua database ini dalam aplikasi Anda.

Pelajari lebih lanjut fitur yang tersedia di Realtime Database dan Cloud Firestore.

Siap memilih database?

Semoga perbandingan ini dapat membantu Anda memutuskan solusi database Firebase yang akan digunakan. Sekarang, Anda dapat mempelajari cara menambahkan database ke project Firebase.