Buka konsol

Memilih database: Cloud Firestore atau Realtime Database

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

  • Cloud Firestore adalah database terbaru dari Firebase untuk pengembangan aplikasi seluler. Database ini melanjutkan keberhasilan Realtime Database dengan model data baru yang lebih intuitif. Cloud Firestore juga memiliki fitur kueri yang lebih lengkap dan lebih cepat, serta fitur skala yang lebih mendalam dibandingkan dengan Realtime Database.
  • Realtime Database adalah database asli Firebase. Solusi ini berlatensi rendah dan efisien untuk aplikasi seluler yang membutuhkan status sinkronisasi di semua klien secara real-time.

Database mana yang tepat untuk project Anda?

Kami merekomendasikan Cloud Firestore untuk sebagian besar developer yang memulai project baru. Cloud Firestore menawarkan fungsionalitas, 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 berikut antara Cloud Firestore dan Realtime Database.

Model data

Realtime Database dan Cloud Firestore adalah Database NoSQL.

Realtime Database 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 model data Realtime Database lebih lanjut.

Menyimpan data sebagai kumpulan 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 sedikit denormalisasi dan perataan data.

Pelajari model data Cloud Firestore lebih lanjut.

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.

Realtime Database Cloud Firestore
Dukungan offline untuk klien 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 fungsionalitas pengurutan dan pemfilteran terbatas.
  • Kueri dapat mengurutkan atau memfilter properti, tetapi tidak bisa sekaligus.
  • Kueri bersifat mendalam secara default: Kueri selalu menunjukkan keseluruhan subhierarki.
  • Kueri dapat mengakses data dengan perincian apa pun, hingga ke masing-masing perincian nilai node dalam hierarki JSON.
  • Kueri tidak memerlukan indeks; akan tetapi, performa kueri tertentu dapat menurun saat kumpulan data Anda bertambah.
Kueri terindeks dengan pengurutan dan pemfilteran gabungan.
  • Anda dapat merangkai filter dan menggabungkan pemfilteran serta pengurutan pada properti dalam satu kueri.
  • Kueri bersifat dangkal: hanya menunjukkan dokumen dalam suatu 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 kumpulan data.

Operasi tulis dan transaksi

Realtime Database Cloud Firestore
Operasi tulis dan transaksi dasar.
  • Menulis data melalui operasi tetapkan dan perbarui.
  • Transaksi bersifat menyeluruh pada subhierarki data tertentu.
Operasi tulis dan transaksi lanjutan.
  • Operasi menulis data melalui operasi tetapkan dan perbarui serta transformasi lanjutan, seperti operator array dan numerik.
  • Transaksi dapat membaca dan menulis data secara menyeluruh dari bagian manapun dalam database.

Keandalan dan performa

Realtime Database Cloud Firestore
Realtime Database adalah solusi satu region.
  • Database terbatas sesuai ketersediaan menurut zona di satu region.
  • Karena latensinya yang sangat rendah, ini adalah pilihan tepat untuk sinkronisasi status yang sering dilakukan.
Baca karakteristik performa dan keandalan Realtime Database lebih lanjut di Perjanjian Tingkat Layanan.
Cloud Firestore adalah solusi multi-region yang mendukung penskalaan otomatis.
  • Menyimpan data Anda pada beberapa pusat data di region yang berbeda. Tujuannya, untuk memastikan skalabilitas global dan keandalan yang mumpuni.
  • Tersedia dalam konfigurasi regional atau multi-regional di seluruh dunia.
Baca karakteristik performa dan keandalan Cloud Firestore lebih lanjut di Perjanjian Tingkat Layanan.

Skalabilitas

Realtime Database Cloud Firestore
Penskalaan membutuhkan sharding.
  • Melakukan penskalaan hingga mencapai sekitar 100.000 koneksi secara serentak dan 1.000 tulis/detik dalam database tunggal. Jika jumlah penskalaannya di atas angka tersebut, perlu dilakukan sharding data di seluruh database.
  • Tidak ada batasan lokal atas kecepatan penulisan untuk setiap data.
Penskalaan berjalan otomatis.
  • Penskalaan sepenuhnya berjalan otomatis. Saat ini, batas penskalaan adalah sekitar 1 juta koneksi serentak dan 10.000 tulis/detik. Kami berencana meningkatkan batas ini di masa mendatang.
  • Memiliki batasan pada kecepatan tulis untuk setiap dokumen atau indeks.

Keamanan

Realtime Database Cloud Firestore
Bahasa aturan menurun yang memisahkan otorisasi dan validasi.
  • Operasi baca dan tulis dari SDK seluler yang dilindungi oleh Aturan Realtime Database.
  • Aturan operasi baca dan tulis bersifat menurun.
  • Anda memvalidasi data secara terpisah menggunakan aturan validate.
Aturan yang tidak menurun yang menggabungkan otorisasi dan validasi.
  • Operasi baca dan tulis dari SDK seluler yang dilindungi oleh Aturan Keamanan Cloud Firestore.
  • Operasi baca dan tulis dari SDK server yang dilindungi oleh Pengelolaan Akses dan Identitas (IAM).
  • Aturan tidak menurun, kecuali 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.

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 paket harga Realtime Database lebih lanjut.

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

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

Baca paket harga Cloud Firestore lebih lanjut.

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.

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