Memilih Database: Cloud Firestore atau Realtime Database

Firebase menawarkan 2 solusi database berbasis cloud yang dapat diakses klien, yang mendukung sinkronisasi data secara real-time:

  • Realtime Database adalah database asli Firebase. Solusi ini berlatensi rendah dan efisien untuk aplikasi seluler yang membutuhkan status sinkronisasi di seluruh klien secara realtime.
  • Cloud Firestore adalah database unggulan baru dari Firebase untuk pengembangan aplikasi seluler. Cloud Firestore melanjutkan keberhasilan Realtime Database dengan model data baru yang lebih intuitif. Cloud Firestore juga memiliki fitur kueri yang lebih kaya dan lebih cepat, dan skala yang lebih baik daripada Realtime Database.

Database mana yang tepat untuk project Anda?

Jika Anda merasa nyaman menggunakan produk versi beta, gunakan Cloud Firestore untuk project baru Anda. Cloud Firestore menawarkan fungsi, performa, dan skalabilitas tambahan pada infrastruktur yang dirancang untuk mendukung fitur yang lebih canggih dalam rilis mendatang. Anda akan melihat jenis kueri baru, aturan keamanan yang lebih kuat, dan peningkatan performa, selain fitur-fitur lanjutan lainnya yang direncanakan untuk Cloud Firestore.

Saat akan memilih solusi database, pertimbangkan perbedaan antara Cloud Firestore dan Realtime Database berikut ini.

Model data

Baik Realtime Database dan Cloud Firestore adalah Database NoSQL.

Realtime Database Cloud Firestore
Menyimpan data sebagai 1 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.

Menyimpan data dalam dokumen yang tersusun dalam koleksi.
  • Data sederhana mudah disimpan dalam dokumen, yang sangat mirip dengan JSON.
  • Data kompleks dan hierarkis lebih mudah disusun dalam skala besar, dengan menggunakan subkoleksi dalam dokumen.
  • Membutuhkan sedikit denormalisasi dan perataan data.

Pelajari lebih lanjut model data Cloud Firestore.

Dukungan real-time dan offline

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

Realtime Database Cloud Firestore
Dukungan offline untuk klien seluler hanya di iOS dan Android. Dukungan offline untuk klien iOS, Android, dan web.

Membuat kueri

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

Realtime Database Cloud Firestore
Kueri mendalam dengan fungsi pengurutan dan pemfilteran terbatas.
  • Anda hanya dapat mengurutkan atau memfilter properti, bukan mengurutkan dan memfilter properti, dalam 1 kueri.
  • Kueri bersifat mendalam secara default. Kueri selalu menghasilkan keseluruhan subhierarki.
Kueri terindeks dengan pengurutan dan pemfilteran gabungan.
  • Anda dapat merangkai filter dan menggabungkan pemfilteran serta pengurutan pada properti dalam 1 kueri.
  • Menuliskan kueri dangkal untuk subkoleksi: Anda dapat membuat kueri subkoleksi dalam dokumen, dan bukan keseluruhan koleksi, atau bahkan keseluruhan dokumen.
  • Kueri diindeks secara default: performa kueri sebanding dengan ukuran kumpulan hasil, bukan kumpulan data.

Penulisan dan transaksi

Realtime Database Cloud Firestore
Operasi tulis dan transaksi dasar. Operasi tulis dan transaksi menyeluruh.
  • Operasi batch dan penyelesaian operasi secara menyeluruh.
  • Transaksi mengulang secara otomatis hingga operasi selesai.

Keandalan dan performa

Realtime Database Cloud Firestore
Realtime Database adalah produk yang matang.
  • Stabilitas yang Anda harapkan dari produk teruji dan tepercaya.
  • Latensi sangat rendah, sehingga ini adalah pilihan tepat untuk sinkronisasi status yang sering dilakukan.
  • Database terbatas sesuai ketersediaan menurut zona di 1 region.
Baca lebih lanjut tentang karakteristik keandalan dan performa Realtime Database dalam Perjanjian Tingkat Layanan.
Cloud Firestore saat ini tersedia dalam versi beta.
  • Stabilitas dalam produk versi beta tidak selalu sama dengan produk versi penuh.
  • Menyimpan data Anda di beberapa pusat data di region yang berbeda, sehingga memastikan skalabilitas global dan keandalan yang kuat.
  • Saat diupdate dari versi beta, Cloud Firestore akan memiliki keandalan yang lebih kuat daripada Realtime Database.

Skalabilitas

Realtime Database Cloud Firestore
Penskalaan membutuhkan sharding.

Skala ke sekitar 100.000 koneksi serentak dan 1.000 tulis/detik dalam database tunggal. Penskalaan yang lebih besar daripada itu memerlukan sharding data di seluruh database.

Penskalaan akan menjadi otomatis.

Melakukan penskalaan akan sepenuhnya menjadi otomatis (setelah versi beta), artinya Anda tidak perlu melakukan sharding data di beberapa instance.

Keamanan

Realtime Database Cloud Firestore
Aturan menurun yang memerlukan validasi terpisah. Keamanan yang lebih sederhana dan lebih kuat untuk SDK seluler, web, dan server.
  • SDK seluler dan web menggunakan Aturan Keamanan Cloud Firestore. SDK Server menggunakan Pengelolaan Akses dan Identitas (IAM).
  • Aturan tidak menurun, kecuali Anda menggunakan karakter pengganti.
  • Validasi data terjadi secara otomatis.
  • Aturan dapat membatasi kueri: Jika hasil kueri mungkin berisi data yang tidak dapat diakses oleh pengguna, keseluruhan kueri akan gagal.

Harga

Harga kedua solusi tersedia di bagian paket harga Spark, Flame, dan Blaze.

Realtime Database Cloud Firestore
Membebankan biaya hanya untuk bandwidth dan penyimpanan, tetapi pada tarif lebih tinggi.

Baca lebih lanjut paket harga Realtime Database.

Membebankan biaya terutama pada operasi yang dilakukan di database Anda (baca, tulis, hapus), dan pada tarif, bandwidth serta penyimpanan yang lebih rendah.

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

Baca lebih lanjut paket harga Cloud Firestore.

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 klien bekerja dengan cara yang sama. Ingatlah perbedaan yang diuraikan di atas jika Anda memutuskan untuk menggunakan kedua database ini dalam aplikasi Anda.

Jika Anda ingin mencoba Cloud Firestore selagi masih berstatus beta, gunakan panduan memulai.

Untuk mempelajari lebih lanjut fitur yang tersedia di Realtime Database, baca dokumentasi Realtime Database.

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.