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 penskalaan yang lebih besar dibandingkan dengan Realtime Database.
Realtime Database adalah database asli Firebase. Solusi ini berlatensi rendah dan efisien untuk aplikasi seluler yang membutuhkan status sinkron lintas klien secara real-time.
Database mana yang direkomendasikan Firebase?
Pilihan solusi database Anda akan bergantung pada banyak faktor, tetapi jika berkaitan dengan fitur tertentu, kami dapat membuat rekomendasi database yang tepat untuk Anda.
Kedua solusi tersebut menawarkan:
- SDK yang mengutamakan klien, tidak ada server untuk di-deploy dan dipelihara
- Update real-time
- Paket gratis, lalu bayar sesuai penggunaan
Pertimbangan utama
Selain fitur-fitur inti hebat yang sama-sama dimiliki kedua database, pikirkan pengaruh sebagian atau semua pertimbangan yang tercantum di bawah ini terhadap kesuksesan aplikasi Anda.
Peran database |
Aplikasi saya menggunakan database untuk...
Terutama menyinkronkan data, dengan kueri dasar.
Jika Anda tidak memerlukan kueri, pengurutan, dan transaksi lanjutan, sebaiknya gunakan Realtime Database.
Kueri, pengurutan, dan transaksi lanjutan.
Jika Anda memerlukan interaksi yang kompleks dengan data, misalnya dalam aplikasi e-commerce, sebaiknya gunakan Cloud Firestore.
|
Operasi pada data |
Penggunaan database aplikasi saya kira-kira seperti ini...
Data berukuran beberapa GB atau kurang yang sering berubah.
Jika aplikasi Anda akan mengirimkan aliran update kecil, seperti dalam aplikasi papan tulis digital, sebaiknya gunakan Realtime Database.
Data berukuran ratusan GB hingga TB yang jauh lebih sering dibaca daripada diubah.
Untuk set data yang sangat besar, dan ketika operasi batch sering diperlukan, sebaiknya gunakan Cloud Firestore.
|
Model data |
Saya lebih suka membuat struktur data sebagai...
Hierarki JSON sederhana.
Untuk data JSON tidak terstruktur, sebaiknya gunakan Realtime Database.
Dokumen yang disusun menjadi koleksi.
Untuk dokumen dan koleksi terstruktur, sebaiknya gunakan Cloud Firestore.
|
Ketersediaan |
Kebutuhan ketersediaan saya adalah...
Jaminan waktu beroperasi yang sangat tinggi sebesar 99,999%.
Jika ketersediaan sangat penting, misalnya dalam aplikasi e-commerce, sebaiknya gunakan Cloud Firestore.
Jaminan waktu beroperasi sedikitnya sebesar 99,95%.
Jika ketersediaan yang sangat tinggi diperlukan tetapi bukan suatu keharusan, sebaiknya gunakan Cloud Firestore atau Realtime Database.
|
Kueri offline pada data lokal |
Aplikasi saya perlu menjalankan kueri di perangkat dengan konektivitas terbatas atau tanpa konektivitas...
Sering.
Untuk mendapatkan kemampuan kueri yang canggih di data lokal saat pengguna offline, sebaiknya gunakan Cloud Firestore.
Jarang atau tidak pernah.
Jika Anda memperkirakan pengguna akan terus online, sebaiknya gunakan Cloud Firestore atau Realtime Database.
|
Apa saja hal penting lainnya yang perlu dipertimbangkan?
Setelah memikirkan pertimbangan utama sebelumnya, Anda mungkin siap untuk memilih database. Jika Anda masih menimbang kelebihan dan kekurangannya, bagian ini membahas perbedaan lain 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.
Pelajari model data Realtime Database lebih lanjut. |
Menyimpan data sebagai koleksi dokumen.
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 Apple dan Android. | Dukungan offline untuk klien Apple, Android, dan web. |
Kehadiran
Mengetahui saat klien online atau offline bisa bermanfaat. Firebase Realtime Database dapat merekam status koneksi klien dan menyediakan kabar terbaru setiap kali status koneksi klien berubah.
Realtime Database | Cloud Firestore |
---|---|
Kehadiran didukung. | Tidak didukung secara native. Anda dapat memanfaatkan dukungan Realtime Database untuk kehadiran dengan menyinkronkan Cloud Firestore dan Realtime Database menggunakan Cloud Functions. Lihat Membuat kehadiran di Cloud Firestore. |
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 terindeks dengan pengurutan dan pemfilteran gabungan.
|
Penulisan dan transaksi
Realtime Database | Cloud Firestore |
---|---|
Operasi tulis dan transaksi dasar.
|
Operasi tulis dan transaksi lanjutan.
|
Keandalan dan performa
Realtime Database | Cloud Firestore |
---|---|
Realtime Database adalah solusi regional.
|
Cloud Firestore adalah solusi regional dan multiregion yang mendukung penskalaan otomatis.
|
Skalabilitas
Realtime Database | Cloud Firestore |
---|---|
Penskalaan membutuhkan sharding.
|
Penskalaan berjalan otomatis.
|
Keamanan
Realtime Database | Cloud Firestore |
---|---|
Bahasa aturan yang bersifat menurun yang memisahkan otorisasi dan validasi.
|
Aturan yang tidak bersifat menurun yang menggabungkan otorisasi dan validasi.
|
Harga
Kedua solusi tersedia dalam paket harga Spark dan Blaze.
Realtime Database | Cloud Firestore |
---|---|
Mengenakan biaya hanya untuk bandwidth dan penyimpanan, tetapi dengan tarif lebih tinggi.
Baca paket harga Realtime Database lebih lanjut. |
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 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 kliennya berfungsi 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.
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.
- Untuk Cloud Firestore, lihat Memulai Cloud Firestore.
- Untuk Realtime Database, baca topik Memulai untuk platform Anda: Apple, Android, C++, Unity, Web, atau REST.