Jadi saya menulis seluruh posting blog tentang pertanyaan ini, dan saya sarankan Anda memeriksanya (atau dokumentasi resmi ) untuk jawaban yang lebih lengkap.
Tetapi jika Anda ingin ringkasan cepat (-ish), ini dia:
Permintaan yang lebih baik dan data yang lebih terstruktur - Sementara Basis Data Realtime hanyalah pohon JSON raksasa, Cloud Firestore sedikit lebih terstruktur. Semua data Anda terdiri dari dokumen (yang pada dasarnya adalah penyimpanan nilai-kunci) dan koleksi (yang merupakan kumpulan dokumen). Dokumen juga akan sering mengarah ke subkoleksi, yang berisi dokumen lain, yang sendiri dapat berisi dokumen lain, dan sebagainya.
Data terstruktur ini membantu Anda dalam dua cara. Pertama, semua kueri dangkal , artinya Anda dapat meminta dokumen tanpa mengambil semua data di bawahnya. Ini berarti Anda dapat menyimpan data Anda tersimpan secara hierarkis dengan cara yang lebih masuk akal bagi Anda tanpa harus khawatir tentang menjaga database Anda dangkal. Kedua, Anda memiliki pertanyaan yang lebih kuat. Misalnya, Anda sekarang dapat melakukan kueri di beberapa bidang tanpa harus membuat bidang "kombo" yang menggabungkan (dan mendenormalkan) data dari bagian lain dari basis data Anda. Dalam beberapa kasus, Cloud Firestore hanya akan menjalankan kueri tersebut secara langsung, dan dalam kasus lain, Cloud Firestore akan secara otomatis membuat dan mempertahankan indeks untuk Anda.
Dirancang untuk Skala - Cloud Firestore akan dapat skala lebih baik daripada Basis Data Realtime. Penting untuk dicatat bahwa kueri Anda skala dengan ukuran set hasil Anda, bukan set data Anda. Jadi pencarian akan tetap cepat tidak peduli seberapa besar kumpulan data Anda.
Pengambilan data manual yang lebih mudah - Seperti Basis Data Realtime, Anda dapat mengatur pendengar di Cloud Firestore untuk mengalirkan perubahan secara waktu nyata. Tetapi jika Anda tidak menginginkan perilaku seperti itu, dan hanya ingin panggilan "ambil data saya" yang sederhana, Cloud Firestore juga memilikinya, dan itu dibangun sebagai use case utama. (Mereka jauh lebih baik daripada once
panggilan di Realtime Database-land)
Dukungan multi wilayah - Ini pada dasarnya berarti lebih banyak keandalan, karena data Anda dibagikan di beberapa pusat data sekaligus. Tetapi Anda masih memiliki konsistensi yang kuat, artinya Anda selalu dapat membuat kueri dan yakin bahwa Anda mendapatkan versi terbaru dari data Anda.
Model penetapan harga yang berbeda - Sementara Basis Data Realtime utamanya mengenakan biaya berdasarkan penyimpanan atau bandwidth jaringan, Cloud Firestore terutama mengenakan biaya berdasarkan jumlah operasi yang Anda lakukan. Apakah ini lebih baik, atau lebih buruk? Itu tergantung pada aplikasi Anda.
Untuk menjalankan aplikasi berita, game multiplayer berbasis giliran, atau sesuatu seperti Stack Overflow versi Anda sendiri, Cloud Firestore mungkin akan terlihat cukup menguntungkan dari sudut pandang harga. Untuk sesuatu seperti aplikasi menggambar grup real-time di mana Anda mengirim banyak pembaruan satu detik ke beberapa orang, itu mungkin akan lebih mahal daripada Realtime Database.
Mengapa Anda masih ingin menggunakan Basis Data Realtime - Ada beberapa alasan. 1) Keseluruhan itu "mungkin akan lebih murah untuk aplikasi yang membuat banyak pembaruan sering" hal yang saya sebutkan sebelumnya, 2) Sudah ada sejak lama dan telah diuji oleh ribuan aplikasi, 3) Ini memiliki latensi yang lebih baik dan ketika Anda membutuhkan sesuatu dengan latensi rendah andal untuk nuansa waktu-nyata, Basis Data Realtime mungkin bekerja lebih baik.
Untuk sebagian besar aplikasi baru, kami sarankan Anda memeriksa Cloud Firestore. Tetapi jika Anda memiliki aplikasi yang sudah ada di Realtime Database, saya tidak benar-benar merekomendasikan beralih hanya untuk beralih, kecuali jika Anda memiliki alasan kuat untuk melakukannya.
Semoga itu bisa membantu!