Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Pilih database: Cloud Firestore atau Realtime Database

Firebase menawarkan dua solusi database berbasis cloud yang dapat diakses klien yang mendukung sinkronisasi data waktu nyata:

  • Cloud Firestore adalah database terbaru Firebase untuk pengembangan aplikasi seluler. Itu dibangun di atas kesuksesan Realtime Database dengan model data baru yang lebih intuitif. Cloud Firestore juga menampilkan kueri dan penskalaan yang lebih kaya dan lebih cepat daripada Realtime Database.

  • Realtime Database adalah database asli Firebase. Ini adalah solusi latensi rendah yang efisien untuk aplikasi seluler yang memerlukan status tersinkronisasi di seluruh klien secara waktu nyata.

Basis data mana yang direkomendasikan oleh Firebase?

Pilihan solusi basis data Anda akan bergantung pada banyak faktor, tetapi jika berkaitan dengan fitur tertentu, kami dapat membuat rekomendasi tentang basis data mana yang tepat untuk Anda.

Kedua solusi menawarkan:

  • SDK yang mengutamakan klien, tanpa server untuk diterapkan dan dipelihara
  • Pembaruan waktu nyata
  • Tingkat gratis, lalu bayar untuk apa yang Anda gunakan

Pertimbangan utama

Di luar fitur inti hebat yang umum untuk kedua database, pikirkan tentang bagaimana salah satu atau semua pertimbangan yang tercantum di bawah ini akan memengaruhi keberhasilan aplikasi Anda.

Peran basis data
Aplikasi saya menggunakan database untuk...
Terutama menyinkronkan data, dengan kueri dasar.
Jika Anda tidak memerlukan kueri, pengurutan, dan transaksi lanjutan, kami merekomendasikan Realtime Database .
Permintaan lanjutan, penyortiran, dan transaksi.
Jika Anda memerlukan interaksi yang kompleks dengan data Anda, misalnya di aplikasi e-niaga, kami merekomendasikan Cloud Firestore .
Operasi pada data
Penggunaan database aplikasi saya terlihat seperti...
Beberapa GB atau kurang dari data yang sering berubah.
Jika aplikasi Anda akan mengirimkan aliran pembaruan kecil, seperti di aplikasi papan tulis digital, kami merekomendasikan Realtime Database .
Ratusan GB hingga TB data yang dibaca lebih sering daripada diubah.
Untuk set data yang sangat besar, dan saat operasi batch sering dibutuhkan, kami merekomendasikan Cloud Firestore .
Model data
Saya lebih suka menyusun data saya sebagai...
Pohon JSON sederhana.
Untuk data tidak terstruktur JSON, kami merekomendasikan Realtime Database .
Dokumen disusun menjadi koleksi.
Untuk dokumen dan koleksi terstruktur, kami merekomendasikan Cloud Firestore .
Ketersediaan
Kebutuhan ketersediaan saya adalah...
Jaminan uptime yang sangat tinggi sebesar 99,999%.
Jika ketersediaan merupakan hal yang paling penting, misalnya di aplikasi e-niaga, kami merekomendasikan Cloud Firestore .
Jaminan waktu aktif setidaknya 99,95%.
Jika ketersediaan sangat tinggi tetapi tidak kritis dapat diterima, kami merekomendasikan Cloud Firestore atau Realtime Database .
Kueri offline pada data lokal
Aplikasi saya perlu melakukan kueri pada perangkat dengan konektivitas terbatas atau tanpa konektivitas...
Sering.
Untuk kemampuan kueri canggih pada data lokal saat pengguna offline, kami merekomendasikan Cloud Firestore .
Jarang atau tidak pernah.
Jika Anda mengharapkan pengguna Anda untuk online secara konsisten, kami merekomendasikan Cloud Firestore atau Realtime Database .
Jumlah instance database
Dalam proyek pribadi saya, saya perlu menggunakan...
Banyak database, misalnya database untuk setiap pelanggan utama.
Karena memungkinkan Anda menambahkan banyak database ke satu proyek Firebase, kami merekomendasikan Realtime Database .
Hanya satu basis data.
Jika Anda memerlukan satu database, kami merekomendasikan 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 mempertimbangkan pro dan kontra, bagian ini membahas perbedaan lain antara Cloud Firestore dan Realtime Database.

Model data

Baik Realtime Database dan Cloud Firestore adalah Database NoSQL.

Basis Data Waktu Nyata Toko Api Awan
Menyimpan data sebagai satu pohon JSON besar.
  • Data sederhana sangat mudah disimpan.
  • Data yang kompleks dan hierarkis lebih sulit diatur dalam skala besar.

Pelajari lebih lanjut model data Realtime Database .

Menyimpan data sebagai kumpulan dokumen.
  • Data sederhana mudah disimpan dalam dokumen, yang sangat mirip dengan JSON.
  • Data yang kompleks dan hierarkis lebih mudah diatur dalam skala besar, menggunakan subkoleksi dalam dokumen.
  • Memerlukan lebih sedikit denormalisasi dan perataan data.

Pelajari model data Cloud Firestore lebih lanjut .

Dukungan waktu nyata dan offline

Keduanya memiliki SDK waktu nyata yang mengutamakan seluler, dan keduanya mendukung penyimpanan data lokal untuk aplikasi yang siap offline.

Basis Data Waktu Nyata Toko Api Awan
Dukungan offline untuk klien Apple dan Android. Dukungan offline untuk klien Apple, Android, dan web.

Kehadiran

Akan bermanfaat untuk mengetahui kapan klien sedang online atau offline. Firebase Realtime Database dapat merekam status koneksi klien dan memberikan pembaruan setiap kali status koneksi klien berubah.

Basis Data Waktu Nyata Toko Api Awan
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 Bangun kehadiran di Cloud Firestore .

Meminta

Ambil, urutkan, dan filter data dari salah satu database melalui kueri.

Basis Data Waktu Nyata Toko Api Awan
Kueri mendalam dengan fungsi penyortiran dan pemfilteran terbatas .
  • Kueri dapat mengurutkan atau memfilter properti, tetapi tidak keduanya.
  • Kueri dalam secara default: kueri selalu mengembalikan seluruh subpohon.
  • Kueri dapat mengakses data dengan perincian apa pun, hingga ke nilai simpul daun individual di pohon JSON.
  • Kueri tidak memerlukan indeks; namun kinerja kueri tertentu menurun seiring bertambahnya kumpulan data Anda.
Kueri yang diindeks dengan penyortiran dan pemfilteran gabungan .
  • Anda dapat merangkai filter dan menggabungkan pemfilteran dan pengurutan pada properti dalam satu kueri.
  • Kueri dangkal: kueri hanya mengembalikan dokumen dalam koleksi atau grup koleksi tertentu dan tidak mengembalikan data subkoleksi.
  • Kueri harus selalu mengembalikan seluruh dokumen.
  • Kueri diindeks secara default: Performa kueri sebanding dengan ukuran kumpulan hasil Anda, bukan kumpulan data Anda.

Menulis dan transaksi

Basis Data Waktu Nyata Toko Api Awan
Operasi tulis dan transaksi dasar.
  • Tulis data melalui operasi atur dan perbarui.
  • Transaksi bersifat atomik pada subpohon data tertentu.
Operasi tulis dan transaksi tingkat lanjut.
  • Tulis operasi data melalui operasi atur dan perbarui serta transformasi lanjutan seperti operator larik dan numerik.
  • Transaksi secara atom dapat membaca dan menulis data dari bagian mana pun dari database.

Keandalan dan kinerja

Basis Data Waktu Nyata Toko Api Awan
Realtime Database adalah solusi regional.
  • Tersedia dalam konfigurasi regional. Database terbatas pada ketersediaan zona dalam suatu wilayah.
  • Latensi yang sangat rendah, opsi ideal untuk sinkronisasi status yang sering.
Baca selengkapnya tentang karakteristik performa dan keandalan Realtime Database di Perjanjian Tingkat Layanan .
Cloud Firestore adalah solusi regional dan multi-region yang menskalakan secara otomatis.
  • Tempatkan data Anda di beberapa pusat data di wilayah berbeda, memastikan skalabilitas global dan keandalan yang kuat.
  • Tersedia dalam konfigurasi regional atau multi-regional di seluruh dunia.
Baca selengkapnya tentang karakteristik kinerja dan keandalan Cloud Firestore di Service Level Agreement .

Skalabilitas

Basis Data Waktu Nyata Toko Api Awan
Penskalaan membutuhkan sharding.
  • Skalakan hingga sekitar 200.000 koneksi bersamaan dan 1.000 tulis/detik dalam satu database. Menskalakan lebih dari itu membutuhkan sharding data Anda di beberapa basis data.
  • Tidak ada batasan lokal pada kecepatan tulis untuk masing-masing bagian data.
Penskalaan otomatis.
  • Skala sepenuhnya otomatis. Saat ini, batas penskalaan sekitar 1 juta koneksi bersamaan dan 10.000 tulis/detik. Kami berencana untuk meningkatkan batasan ini di masa mendatang.
  • Memiliki batasan kecepatan penulisan untuk dokumen atau indeks individual.

Keamanan

Basis Data Waktu Nyata Toko Api Awan
Bahasa aturan cascading yang memisahkan otorisasi dan validasi. Aturan non-cascading yang menggabungkan otorisasi dan validasi.
  • Membaca dan menulis dari SDK seluler yang diamankan oleh Aturan Keamanan Cloud Firestore .
  • Membaca dan menulis dari server SDK yang diamankan oleh Identity and Access Management (IAM) .
  • Aturan tidak menurun kecuali Anda menggunakan wildcard.
  • Aturan dapat membatasi kueri: Jika hasil kueri mungkin berisi data yang tidak dapat diakses oleh pengguna, seluruh kueri akan gagal.

Harga

Kedua solusi tersebut tersedia pada paket harga Spark dan Blaze .

Basis Data Waktu Nyata Toko Api Awan
Biaya hanya untuk bandwidth dan penyimpanan , tetapi dengan tarif yang lebih tinggi.

Baca selengkapnya tentang paket harga Realtime Database .

Dibebankan terutama pada operasi yang dilakukan di database Anda (baca, tulis, hapus) dan, dengan tarif lebih rendah, bandwidth dan penyimpanan.

Cloud Firestore mendukung batas pengeluaran harian untuk proyek App Engine, untuk memastikan Anda tidak melebihi biaya yang Anda rasa nyaman.

Baca selengkapnya tentang paket harga Cloud Firestore .

Menggunakan Cloud Firestore dan Realtime Database

Anda dapat menggunakan kedua database dalam aplikasi atau proyek Firebase yang sama. Kedua database NoSQL dapat menyimpan jenis data yang sama dan pustaka klien bekerja dengan cara yang sama. Perhatikan perbedaan yang diuraikan di atas jika Anda memutuskan untuk menggunakan kedua database di aplikasi Anda .

Pelajari lebih lanjut fitur yang tersedia di Realtime Database dan Cloud Firestore .

Siap memilih database?

Semoga perbandingan ini membantu Anda memilih solusi database Firebase. Sekarang Anda dapat mempelajari cara menambahkan database ke proyek Firebase Anda.