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 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 seluruh 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 pertama klien, tanpa server untuk di-deploy dan dipertahankan
- Update real-time
- Paket gratis, lalu bayar sesuai penggunaan
Pertimbangan utama
Selain fitur inti bagus yang umum untuk kedua database tersebut, pikirkan pengaruh dari beberapa 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 terlihat seperti...
Beberapa GB atau lebih sedikit data yang sering berubah.
Jika aplikasi Anda akan mengirimkan aliran update kecil, seperti dalam aplikasi papan tulis digital, sebaiknya gunakan Realtime Database.
Ratusan GB hingga TB data yang 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...
Pohon JSON sederhana.
Untuk data JSON tidak terstruktur, sebaiknya gunakan Realtime Database.
Dokumen 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 minimal sebesar 99,95%.
Jika ketersediaan sangat tinggi 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 kemampuan kueri yang canggih di data lokal saat pengguna offline, sebaiknya gunakan Cloud Firestore.
Jarang atau tidak pernah.
Jika Anda ingin pengguna terus online, sebaiknya gunakan Cloud Firestore atau Realtime Database.
|
Jumlah instance database |
Dalam setiap project saya, saya perlu menggunakan...
Banyak database, misalnya database untuk setiap pelanggan utama.
Karena memungkinkan Anda menambahkan beberapa database ke satu project Firebase, kami merekomendasikan Realtime Database.
Hanya satu database.
Jika Anda membutuhkan satu database, 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 kumpulan 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 iOS dan Android. | Dukungan offline untuk klien iOS, Android, dan web. |
Kehadiran
Anda perlu tahu kapan klien sedang online atau offline. 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 fungsi pengurutan dan pemfilteran terbatas.
|
Kueri terindeks dengan pengurutan dan pemfilteran gabungan.
|
Operasi tulis 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 multi-region 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
Harga kedua solusi tersedia di bagian paket harga Spark 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 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.
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.