MongoDB vs Firebase [ditutup]

149

Apa beberapa keuntungan kuantitatif dari menggunakan Firebase dibandingkan MongoDB? (bukan pendapat)

Saya tahu bahwa Firebase adalah layanan berbasis cloud dengan APInya sendiri, tetapi saya merasa seperti Mongo dapat memberi saya kontrol yang lebih besar dalam jangka panjang.

ituclarke
sumber
53
@ David Ini bukan berdasarkan opini. OP tidak menanyakan mana yang lebih baik (yang akan didasarkan pada pendapat) tetapi meminta keuntungan (jika ada) FB atas MongoDb. Untuk memiliki pendapat, kita perlu menarik manfaat dan kelemahan dari keduanya dan menilai teknologi mana yang lebih disukai
Kirill Slatin
Saya akan merekomendasikan @itsclarke untuk membaca ini: crisp.chat/blog/…
Junior Mayhé
2
@ KirillSlatin Pertanyaan ini sekarang telah ditutup. Anda dapat membaca mengapa pertanyaan seperti ini tidak dihargai di posting blog Gorilla vs Shark . Meskipun alasan tidak konstruktif yang dimaksud dalam blog ini tidak lagi tersedia, namun masih sangat luas (menyebutkan semua perbedaan dalam jawaban itu membosankan), sangat berbasis waktu (fitur mungkin ditambahkan yang mengubah ini), dan umumnya tidak baik cocok untuk situs ini.
Erik A

Jawaban:

123
  • Firebase adalah mesin real-time dengan konektivitas mundur. Yaitu Anda dapat membangun aplikasi lintas platform di mana klien berlangganan acara pada data tertentu dan server secara aktif menginformasikan klien tentang perubahan
  • Lapisan data dihosting untuk Anda. Pikiran itu sangat scalable. Ini solusi kickstarter yang bagus. Termasuk manajemen auth
  • Geo-Fire. Solusi koordinat geografis waktu nyata.
  • Kerugian nyata Firebase adalah:
    • Anda harus membayarnya segera setelah Anda mulai tumbuh
    • Anda tidak dapat meng-host datalayer (jika memiliki data sangat penting atau Anda mengembangkan aplikasi untuk beberapa subnet terpisah)

SUNTING: inilah artikel yang bagus bagaimana cara mengganti Firebase di aplikasi Anda dengan Node.js + MongoDb. Ini menunjukkan berapa banyak pekerjaan yang harus Anda lakukan sendiri, dan menjelaskan, IMHO, mengapa startup (aplikasi kecil) harus dimulai dengan Firebase (jika pembaruan real-time untuk klien diperlukan) dan dilanjutkan dengan MongoDb (dalam kasus apa pun sendiri - Solusi tertulis) jika proyek terus berkembang

EDIT 2: setelah diakuisisi oleh Google Firebase sekarang menawarkan berbagai fasilitas di atas fitur dasarnya yang Anda akan berjuang untuk membangun sendiri:

Kirill Slatin
sumber
39

Apel dan jeruk. Firebase adalah Backend-as-a-Layanan yang berisi manajemen identitas, tampilan data waktu nyata, dan basis data dokumen. Ini berjalan di cloud.

MongoDB di sisi lain adalah database yang lengkap dengan bahasa query yang kaya. Pada prinsipnya ini berjalan pada mesin Anda sendiri, tetapi ada penyedia cloud.

Jika Anda mencari komponen database hanya MongoDB jauh lebih matang dan kaya fitur.

Kees de Kooter
sumber
31

Firebase dirancang untuk pembaruan waktu-nyata. Mudah diintegrasikan dengan sudut. Keduanya adalah basis data NoSQL. MongoDB juga dapat melakukan ini dengan integrasi Angular melalui Socket.io. Meteor.js juga memanfaatkan MongoDB dengan koneksi soket terbuka untuk pembaruan waktu nyata.

MongoDB dapat dijalankan secara lokal, atau dihosting di banyak penyedia berbasis cloud. Firebase, menurut saya bagus untuk aplikasi yang lebih kecil, sangat cepat untuk bangun dan berjalan. MongoDB sangat ideal untuk aplikasi yang lebih besar dan lebih kuat, integrasi real-time dimungkinkan tetapi butuh sedikit lebih banyak pekerjaan.

byrdr
sumber
23

Setelah menggunakan Firebase, saya cukup banyak menemukan sesuatu.

Jika Anda bermaksud menggunakannya untuk aplikasi besar dan real time, itu bukan pilihan terbaik. Ini memiliki berbagai macam masalah termasuk sistem penanganan kesalahan yang buruk dan keterbatasan. Anda akan menghabiskan banyak waktu untuk mencoba memahami Firebase dan ketegarannya. Juga sangat mudah bagi sebuah proyek untuk menjadi hal monolitik yang tidak terkendali. MongoDB adalah pilihan yang jauh lebih baik sejauh backend untuk aplikasi besar berjalan.

Namun, jika Anda perlu membuat aplikasi kecil atau membuat prototipe sesuatu dengan cepat, Firebase adalah pilihan yang bagus. Ini akan menjadi cara yang sangat mudah untuk mulai bekerja.

Ramzi C.
sumber
22

Saya akan menjawab pertanyaan ini dalam kaitannya dengan AngularFire, perpustakaan Firebase untuk Angular.

  1. Tl; dr: kekuatan super. :-)

  2. Pengikatan data tiga arah AngularFire. Angular mengikat tampilan dan lingkup $, yaitu, apa yang dilakukan pengguna Anda dalam tampilan secara otomatis memperbarui dalam variabel lokal, dan ketika JavaScript Anda memperbarui variabel lokal tampilan diperbarui secara otomatis. Dengan Firebase, basis data cloud juga memperbarui secara otomatis. Anda tidak perlu menulis permintaan $ http.get atau $ http.put, data hanya pembaruan.

  3. Pengikatan data lima arah, dan tujuh arah, sembilan arah, dll. Saya membuat game tic-tac-toe menggunakan AngularFire. Dua pemain dapat bermain bersama, dengan dua tampilan memperbarui dua $ lingkup dan basis data cloud. Anda bisa membuat game dengan tiga pemain atau lebih, semuanya berbagi satu basis data Firebase.

  4. Pustaka OAuth2 AngularFire memudahkan otorisasi dengan Facebook, GitHub, Google, Twitter, token, dan kata sandi.

  5. Keamanan ganda. Anda bisa mengatur rute Angular Anda untuk meminta otorisasi, dan mengatur aturan di Firebase tentang siapa yang bisa membaca dan menulis data.

  6. Tidak ada ujung belakang. Anda tidak perlu membuat server dengan Node dan Express. Menjalankan server Anda sendiri bisa jadi banyak pekerjaan, membutuhkan pengetahuan tentang keamanan, mengharuskan seseorang melakukan sesuatu jika server turun, dll.

  7. Cepat. Jika server Anda di San Francisco dan klien di San Jose, baiklah. Tetapi untuk klien di Bangalore yang terhubung ke server Anda akan lebih lambat. Firebase dikerahkan di seluruh dunia untuk koneksi cepat di mana saja.

Thomas David Kehoe
sumber
apa itu Fireloop ?, apakah ini cara menulis api sisa dengan firebase?
ashishSober
sebenarnya saya pikir angularfire luar biasa, adakah cara yang bisa Anda ambil dan lewati untuk digunakan dengan sistem database Anda sendiri? juga untuk dapat secara instan memperbarui nilai
Kross
Saya suka bagian terakhir dari komentar Anda: "Firebase dikerahkan di seluruh dunia untuk koneksi cepat di mana-mana."
Lester
13

Dalam pengalaman saya, bekerja dengan Firebase adalah keuntungan besar jika Anda mencoba melakukan manajemen pengguna, basis data, aplikasi semacam perpesanan karena semua fitur ini sudah terintegrasi dengan baik.

Seperti yang dikatakan orang lain, jika Anda hanya fokus pada aspek database / kueri, tetaplah pada mongo.

Nam Kim
sumber
13

Firebase adalah serangkaian fitur.

  • Database Realtime
  • Hosting
  • Autentikasi
  • Penyimpanan
  • Perpesanan Awan
  • Remote Config
  • Lab Uji
  • Pelaporan Kecelakaan
  • Notifikasi
  • Pengindeksan Aplikasi
  • Tautan Dinamis
  • Undangan
  • AdWords
  • AdMob

Saya yakin Anda mencoba membandingkan Firebase Realtime Database dengan Mongo DB. Firebase Realtime Database menyimpan data sebagai format JSON dan menyinkronkan ke semua pembaruan data untuk semua klien yang mendengarkan data. Ini mengabstraksi Anda dari semua kompleksitas yang diperlukan untuk mengatur dan skala basis data apa pun. Saya tidak akan merekomendasikan firebase di mana Anda memiliki banyak skenario kompleks di mana agregasi data diperlukan. (Pertanyaan yang membutuhkan jenis barang SUM / AVERAGE). Meskipun ini baru dapat dicapai dengan menggunakan fungsi Firebase. Memodelkan data di Firebase memang rumit. Tetapi ini adalah cara terbaik untuk membantu Anda memulai secara instan. MongoDB adalah database. Ini memberi Anda banyak fitur yang kuat. Tapi MongoDB ketika diinstal di platform apa pun yang Anda butuhkan untuk mengelolanya sendiri.

Ketika saya mencoba untuk memilih antara Firebase atau MongoDB (atau DB apa pun). Saya coba jawab yang berikut ini.

  1. Apakah ada banyak permintaan agregasi yang dieksekusi (Seperti dalam kasus alat pelaporan atau alat BI). Jika Ya, jangan gunakan Firebase
  2. Apakah saya perlu melakukan banyak transaksi. (Jika ya maka saya tidak ingin menggunakan firebase) (Transaksi agak mudah meskipun setelah pengenalan fungsi tetapi itu juga merupakan overhead jika banyak transaksi perlu dipertahankan)
  3. Timeline apa yang harus saya miliki untuk menjalankan dan menjalankannya (Firebase sangat mudah diatur dan diintegrasikan).
  4. Apakah saya memiliki keahlian untuk meningkatkan DB dan memotret masalah terkait DB. (Firebase lebih seperti SAAS sehingga tidak perlu khawatir tentang skalabilitas)
suvankar bose
sumber
13

Firebase menyediakan beberapa fitur bagus seperti refleksi perubahan waktu nyata, integrasi mekanisme otentikasi yang mudah, dan banyak fitur bawaan lainnya untuk pengembangan web yang cepat. Firebase, benar-benar membuat pengembangan Web sangat sederhana yang tidak pernah ada. Basis data Firebase adalah fork dari MongoDB .

Apa keuntungan menggunakan Firebase dibandingkan MongoDB?

Anda dapat memanfaatkan semua fitur bawaan Firebase di atas MongoDB.

mnhmilu
sumber