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.
(gambar : firestore data model)
1) 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.
2) Kenapa harus memilih Cloud Firestore ?
Mari kita bandingkan perbedaan antara
Realtime Database dan
Cloud Firestore3) Realtime Database
Menyimpan data sebagai satu hierarki json yang besar
- Data sederhana sangat mudah disimpan.
- Data kompleks dan hierarkis lebih sulit disusun dalam skala besar.
Dukungan real-time dan offline
- Dukungan offline untuk klien iOS dan Android.
Membuat query
- 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.
Transaksi
- Menulis data melalui operasi tetapkan dan perbarui.
- Transaksi bersifat menyeluruh pada subhierarki data tertentu.
Performa
- Database terbatas sesuai ketersediaan menurut zona di satu region.
- Karena latensinya yang sangat rendah, ini adalah pilihan tepat untuk sinkronisasi status yang sering dilakukan.
Skalabilitas
- 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.
Keamanan
- 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.
Harga
- Membebankan biaya hanya untuk bandwidth dan penyimpanan, tetapi pada tarif lebih tinggi.