MongoDB vs Firebase [ปิด]


149

ข้อดีเชิงปริมาณของการใช้ Firebase บน MongoDB มีอะไรบ้าง (ไม่ใช่ความคิดเห็น)

ฉันรู้ว่า Firebase เป็นบริการบนคลาวด์ที่มี API ของตัวเอง แต่ฉันรู้สึกว่า Mongo อาจให้การควบคุมที่ดีขึ้นในระยะยาว


53
@David มันไม่ได้เป็นความเห็น OP ไม่ได้ถามว่าอันไหนดีกว่า (ซึ่งจะเป็นพื้นฐานของความคิดเห็น) แต่เป็นการถามถึงผลประโยชน์ (ถ้ามี) ของ FB มากกว่า MongoDb ในการมีความเห็นเราจำเป็นต้องดึงประโยชน์ของทั้งคู่และข้อเสียของทั้งคู่มาใช้และตัดสินว่าเทคโนโลยีไหนน่าจะเป็นที่นิยม
Kirill Slatin

ฉันอยากจะแนะนำ @itsclarke เพื่ออ่านสิ่งนี้: crisp.chat/blog/…
Junior Mayhé

2
@KirillSlatin คำถามนี้ถูกปิดแล้ว คุณสามารถอ่านทำไมคำถามเช่นนี้จะไม่ได้รับการชื่นชมในกอริลลา VS ฉลามบล็อกโพสต์ แม้ว่าเหตุผลที่ไม่สร้างสรรค์ที่อ้างถึงในบล็อกนี้จะไม่สามารถใช้งานได้อีกต่อไป แต่ก็ยังกว้างมาก (การแจกแจงความแตกต่างทั้งหมดในคำตอบนั้นน่าเบื่อ) ตามเวลามาก (อาจมีการเพิ่มฟีเจอร์ที่เปลี่ยนแปลง) และโดยทั่วไป เหมาะสำหรับเว็บไซต์นี้
เอริค

คำตอบ:


123
  • Firebaseเป็นเครื่องมือเรียลไทม์ที่มีการเชื่อมต่อย้อนหลัง เช่นคุณอาจสร้างแอปข้ามแพลตฟอร์มที่ลูกค้าสมัครรับข้อมูลกิจกรรมและเซิร์ฟเวอร์เฉพาะแจ้งลูกค้าเกี่ยวกับการเปลี่ยนแปลง
  • ชั้นข้อมูลถูกโฮสต์ไว้สำหรับคุณ ใจว่ามันปรับขนาดได้สูง มันเป็นทางออกที่ดี kickstarter รวมถึงการจัดการรับรองความถูกต้อง
  • ภูมิศาสตร์ไฟ โซลูชันพิกัดทางภูมิศาสตร์ตามเวลาจริง
  • ข้อเสียที่ชัดเจนของ Firebase คือ:
    • คุณต้องจ่ายเงินทันทีที่คุณเริ่มเติบโต
    • คุณไม่สามารถโฮสต์ข้อมูลได้ (หากการเป็นเจ้าของข้อมูลมีความสำคัญหรือคุณพัฒนาแอพสำหรับซับเน็ตแยกบางตัว)

แก้ไข: นี่เป็นบทความที่ดีวิธีแทนที่ Firebase ในแอปของคุณด้วย Node.js + MongoDb มันแสดงให้เห็นว่าคุณต้องทำงานด้วยตัวเองเท่าไหร่และอธิบายว่าทำไม IMHO เริ่มต้น (แอพขนาดเล็ก) ควรเริ่มต้นด้วย Firebase (หากจำเป็นต้องอัพเดตแบบเรียลไทม์ให้กับลูกค้า) และดำเนินการกับ MongoDb โซลูชันที่เขียนด้วยลายมือ) หากโครงการพัฒนาอย่างต่อเนื่อง

แก้ไข 2: หลังจากได้รับโดยGoogle Firebase ตอนนี้มีข้อเสนอที่หลากหลายด้านบนของคุณสมบัติพื้นฐานที่คุณจะพยายามสร้างด้วยตัวคุณเอง:

  • สำหรับการพัฒนา

    • Cloud Messaging : ส่งและรับข้อความข้ามแพลตฟอร์มได้อย่างน่าเชื่อถือ
    • ที่เก็บไฟล์ : ที่เก็บไฟล์ง่าย (รวมถึง iOS)
    • Hosting : ส่งไฟล์คงที่จากเซิร์ฟเวอร์ของ Firebase (รวมอยู่ในแผนฟรี)
    • การรายงานข้อขัดข้อง : ไม่ใช่บริการบันทึกข้อมูลเต็มรูปแบบ แต่ช่วยได้มาก
  • สำหรับการเจริญเติบโต


39

แอปเปิ้ลและส้ม Firebase เป็น Backend-as-a-Service ที่มีการจัดการข้อมูลผู้ใช้มุมมองข้อมูลแบบเรียลไทม์และฐานข้อมูลเอกสาร มันทำงานในระบบคลาวด์

MongoDB ในทางกลับกันเป็นฐานข้อมูลที่สมบูรณ์แบบด้วยภาษาแบบสอบถามที่หลากหลาย โดยหลักการแล้วมันจะทำงานบนเครื่องของคุณเอง แต่มีผู้ให้บริการคลาวด์

หากคุณกำลังมองหาส่วนประกอบฐานข้อมูลเท่านั้น MongoDB นั้นมีความเป็นผู้ใหญ่มากกว่าและมีคุณสมบัติหลากหลาย


31

Firebase ถูกออกแบบมาสำหรับการอัพเดทตามเวลาจริง มันรวมกับเชิงมุมได้อย่างง่ายดาย ทั้งสองเป็นฐานข้อมูล NoSQL MongoDB ยังสามารถทำได้ด้วย Angular ผ่านการรวม Socket.io Meteor.js ยังใช้ประโยชน์จาก MongoDB ด้วยการเชื่อมต่อซ็อกเก็ตแบบเปิดสำหรับการอัพเดตแบบเรียลไทม์

MongoDB สามารถเรียกใช้ในพื้นที่หรือโฮสต์บนผู้ให้บริการคลาวด์ที่แตกต่างกัน Firebase ในความคิดของฉันนั้นยอดเยี่ยมสำหรับแอปขนาดเล็กลงอย่างรวดเร็วในการเริ่มต้นและใช้งาน MongoDB เหมาะอย่างยิ่งสำหรับแอพที่ใหญ่กว่าที่มีประสิทธิภาพยิ่งขึ้นการบูรณาการตามเวลาจริงเป็นไปได้ แต่มันใช้งานได้อีกเล็กน้อย


23

หลังจากใช้ Firebase เป็นจำนวนมากฉันได้พบบางอย่าง

หากคุณตั้งใจจะใช้กับแอพขนาดใหญ่แบบเรียลไทม์นั่นไม่ใช่ตัวเลือกที่ดีที่สุด มีปัญหามากมายรวมถึงระบบการจัดการข้อผิดพลาดและข้อ จำกัด ที่ไม่ดี คุณจะใช้เวลาอย่างมากในการพยายามทำความเข้าใจกับ Firebase และมันก็หว่า นอกจากนี้ยังเป็นเรื่องง่ายสำหรับโครงการที่จะกลายเป็นสิ่งใหญ่โตที่ไม่สามารถควบคุมได้ MongoDB เป็นตัวเลือกที่ดีกว่ามากสำหรับแบ็กเอนด์สำหรับแอพขนาดใหญ่

อย่างไรก็ตามหากคุณต้องการสร้างแอปขนาดเล็กหรือสร้างต้นแบบอย่างรวดเร็ว Firebase เป็นตัวเลือกที่ยอดเยี่ยม มันจะเป็นวิธีที่ง่ายอย่างไม่น่าเชื่อที่จะตีพื้นวิ่ง


22

ฉันจะตอบคำถามนี้ในแง่ของ AngularFire ห้องสมุดของ Firebase สำหรับ Angular

  1. Tl; dr: มหาอำนาจ :-)

  2. การเชื่อมโยงข้อมูลแบบสามทางของ AngularFire Angular ผูกมุมมองและขอบเขต $ เช่นสิ่งที่ผู้ใช้ของคุณทำในมุมมองจะอัปเดตโดยอัตโนมัติในตัวแปรท้องถิ่นและเมื่อ JavaScript ของคุณอัปเดตตัวแปรท้องถิ่นมุมมองจะอัปเดตโดยอัตโนมัติ ด้วย Firebase ฐานข้อมูลคลาวด์จะอัปเดตอัตโนมัติ คุณไม่จำเป็นต้องเขียนคำขอ $ http.get หรือ $ http.put ข้อมูลเพียงแค่อัปเดต

  3. การเชื่อมโยงข้อมูลแบบห้าทางและเจ็ดทาง, เก้าทางเป็นต้นฉันสร้างเกมโอเอกซ์ด้วย AngularFire ผู้เล่นสองคนสามารถเล่นด้วยกันโดยที่ทั้งสองมุมมองอัปเดตขอบเขตสองเหรียญและฐานข้อมูลคลาวด์ คุณสามารถสร้างเกมที่มีผู้เล่นสามคนขึ้นไปทุกคนแบ่งปันฐานข้อมูล Firebase หนึ่งฐาน

  4. ห้องสมุด OAuth2 ของ AngularFire ช่วยให้การอนุญาตง่ายขึ้นด้วย Facebook, GitHub, Google, Twitter, โทเค็นและรหัสผ่าน

  5. ความปลอดภัยเป็นสองเท่า คุณสามารถตั้งค่าเส้นทางเชิงมุมของคุณเพื่อขออนุญาตและตั้งกฎใน Firebase ว่าใครสามารถอ่านและเขียนข้อมูลได้

  6. ไม่มีที่สิ้นสุดหลัง คุณไม่จำเป็นต้องสร้างเซิร์ฟเวอร์ด้วย Node และ Express การใช้เซิร์ฟเวอร์ของคุณเองอาจเป็นงานจำนวนมากต้องรู้เกี่ยวกับความปลอดภัยต้องมีคนทำอะไรบางอย่างถ้าเซิร์ฟเวอร์ล่มเป็นต้น

  7. รวดเร็ว หากเซิร์ฟเวอร์ของคุณอยู่ในซานฟรานซิสโกและลูกค้าอยู่ในซานโฮเซ่ แต่สำหรับลูกค้าในบังกาลอร์ที่เชื่อมต่อกับเซิร์ฟเวอร์ของคุณจะช้าลง Firebase ถูกติดตั้งทั่วโลกเพื่อการเชื่อมต่อที่รวดเร็วทุกที่


Fireloop คืออะไรนี่เป็นวิธีเขียน api ส่วนที่เหลือกับ firebase หรือไม่?
ashishSober

จริง ๆ แล้วฉันคิดว่า angularfire นั้นน่าอัศจรรย์มีวิธีใดบ้างที่คุณจะสามารถนำมันไปใช้กับระบบฐานข้อมูลของคุณเองได้? ในกรณีนี้กับ Mongo ดังนั้นมันน่าอัศจรรย์มากที่คุณสามารถใช้ประโยชน์จากการเชื่อมโยงข้อมูลสามทางและ ยังสามารถอัปเดตค่าของคุณได้ทันที
Kross

ฉันชอบส่วนสุดท้ายของความคิดเห็น: "Firebase ถูกปรับใช้ทั่วโลกสำหรับการเชื่อมต่อที่รวดเร็วทุกที่"
เลสเตอร์

13

จากประสบการณ์ของฉันการทำงานกับ Firebase เป็นข้อได้เปรียบอย่างมากหากคุณพยายามทำการจัดการผู้ใช้ฐานข้อมูลประเภทการส่งข้อความของแอพเนื่องจากคุณสมบัติทั้งหมดเหล่านี้ได้รวมเข้าด้วยกันเรียบร้อยแล้ว

เช่นเดียวกับที่คนอื่นพูดถ้าคุณแค่มุ่งเน้นไปที่ฐานข้อมูล / การสืบค้นให้ทำตาม mongo


13

Firebase เป็นชุดของคุณสมบัติ

  • ฐานข้อมูลเรียลไทม์
  • โฮสติ้ง
  • การรับรอง
  • การเก็บรักษา
  • การส่งข้อความบนคลาวด์
  • กำหนดค่าระยะไกล
  • ทดสอบแล็บ
  • รายงานข้อขัดข้อง
  • การแจ้งเตือน
  • การจัดทำดัชนีแอป
  • ลิงค์แบบไดนามิก
  • เชิญ
  • AdWords
  • AdMob

ฉันเชื่อว่าคุณกำลังพยายามเปรียบเทียบ Firebase Realtime Database กับ Mongo DB Firebase Realtime Database จัดเก็บข้อมูลเป็นรูปแบบ JSON และซิงค์กับการอัปเดตข้อมูลทั้งหมดไปยังไคลเอนต์ทั้งหมดที่รับฟังข้อมูล มันสรุปคุณจากความซับซ้อนทั้งหมดที่จำเป็นในการตั้งค่าและปรับขนาดฐานข้อมูลใด ๆ ฉันจะไม่แนะนำ firebase ที่คุณมีสถานการณ์ที่ซับซ้อนจำนวนมากซึ่งจำเป็นต้องมีการรวมข้อมูล (แบบสอบถามที่ต้องการประเภทของ SUM / AVERAGE) แม้ว่าจะสามารถทำได้เมื่อเร็ว ๆ นี้โดยใช้ฟังก์ชั่น Firebase ข้อมูลการสร้างแบบจำลองใน Firebase นั้นยุ่งยาก แต่มันเป็นวิธีที่ดีที่สุดในการเริ่มต้นให้คุณทันที MongoDB เป็นฐานข้อมูล สิ่งนี้ให้คุณสมบัติที่ทรงพลังมากมายแก่คุณ แต่ MongoDB เมื่อติดตั้งในแพลตฟอร์มใด ๆ ที่คุณต้องจัดการด้วยตัวเอง

เมื่อฉันพยายามเลือกระหว่าง Firebase หรือ MongoDB (หรือ DB ใด ๆ ) ฉันพยายามตอบคำถามต่อไปนี้

  1. มีคิวรี่การรวมจำนวนมากที่ถูกเรียกใช้งาน (เช่นในกรณีของเครื่องมือรายงานหรือเครื่องมือ BI) ถ้าใช่อย่าไปหา Firebase
  2. ฉันจำเป็นต้องทำธุรกรรมจำนวนมากหรือไม่ (ถ้าใช่แล้วฉันไม่อยากไปกับ firebase) (Tranactions นั้นค่อนข้างง่ายแม้ว่าหลังจากเปิดตัวฟังก์ชั่นแล้ว แต่มันก็เป็นค่าใช้จ่ายด้วยหากต้องทำธุรกรรมจำนวนมาก)
  3. ไทม์ไลน์ใดที่ฉันต้องทำให้ทุกอย่างพร้อมใช้งาน (Firebase ติดตั้งและใช้งานได้ง่ายมาก)
  4. ฉันมีความเชี่ยวชาญในการขยายฐานข้อมูลและแก้ไขปัญหาที่เกี่ยวข้องกับฐานข้อมูลหรือไม่ (Firebase เป็นเหมือน SAAS จึงไม่ต้องกังวลกับความสามารถในการปรับขนาด)

13

Firebase มีคุณสมบัติที่ดีเช่นการสะท้อนการเปลี่ยนแปลงแบบเรียลไทม์การรวมกลไกการพิสูจน์ตัวตนได้ง่ายและคุณสมบัติอื่น ๆ ในตัวเพื่อการพัฒนาเว็บอย่างรวดเร็ว Firebase ทำให้การพัฒนาเว็บง่ายขึ้นอย่างที่ไม่เคยมีมาก่อน ฐานข้อมูล Firebase เป็นทางแยกของ MongoDB

ข้อดีของการใช้ Firebase บน MongoDB คืออะไร

คุณสามารถใช้ประโยชน์จากฟีเจอร์ในตัวทั้งหมดของ Firebaseบน MongoDB

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.