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:

  • Realtime Database adalah database asli Firebase. Solusi ini berlatensi rendah dan efisien untuk aplikasi seluler yang membutuhkan status sinkronisasi di seluruh klien secara real-time.
  • 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?

Kami merekomendasikan Cloud Firestore untuk sebagian besar developer yang memulai project baru. 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 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.

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 satu 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 satu 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.

Operasi tulis 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 solusi regional.
  • Latensi sangat rendah, sehingga ini adalah pilihan tepat untuk sinkronisasi status yang sering dilakukan.
  • Database terbatas sesuai ketersediaan menurut zona di satu region.
Baca lebih lanjut karakteristik performa dan keandalan Realtime Database dalam Perjanjian Tingkat Layanan.
Cloud Firestore adalah solusi multi-region yang mendukung automatic scaling.
  • Menyimpan data Anda di beberapa pusat data di region yang berbeda, sehingga memastikan skalabilitas global dan keandalan yang kuat.
  • Menawarkan stabilitas dan keandalan Google Cloud Platform.
Baca lebih lanjut karakteristik performa dan keandalan Cloud Firestore dalam Perjanjian Tingkat Layanan.

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 berjalan otomatis.

Penskalaan sepenuhnya otomatis. Saat ini, batas penskalaan adalah sekitar 1 juta koneksi serentak dan 10.000 tulis/detik. Kami berencana meningkatkan batas ini di masa mendatang.

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.

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