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.

 

firestore data model - halovina

(gambar : firestore data model)

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.

 

Kenapa harus memilih Cloud Firestore ?

Mari kita bandingkan perbedaan antara Realtime Database dan Cloud Firestore

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.

 

Cloud Firestore

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.

Dukungan real-time dan offline

  • Dukungan offline untuk klien iOS, Android, dan web.

Membuat query

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

Transaksi

  • Operasi menulis data melalui operasi tetapkan dan perbarui serta transformasi lanjutan, seperti operator array dan numerik.

Performa

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

Skalabilitas

  • 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

  • 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

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

 

sumber : https://firebase.google.com/docs/

 

baca artikel lainya :