MongoDB vs Firebase [đã đóng]


148

Một số lợi thế định lượng của việc sử dụng Firebase so với MongoDB là gì? (không phải ý kiến)

Tôi biết rằng Firebase là một dịch vụ dựa trên đám mây với API riêng, nhưng tôi cảm thấy Mongo có thể cho tôi quyền kiểm soát tốt hơn trong thời gian dài.


53
@David Nó không dựa trên ý kiến. OP không hỏi cái nào tốt hơn (cái nào sẽ dựa trên ý kiến) mà là hỏi về lợi ích (nếu có) của FB so với MongoDb. Để có ý kiến, chúng ta cần rút ra những lợi ích của cả hai và nhược điểm của cả hai và đánh giá công nghệ nào có thể được ưa thích
Kirill Slatin vào

Tôi muốn giới thiệu @itsclarke để đọc lên: crisp.chat/blog/ Kẻ
Junior Mayhé

2
@KirillSlatin Câu hỏi này hiện đã bị đóng. Bạn có thể đọc tại sao những câu hỏi như thế này không được đánh giá cao trong bài đăng trên blog của Gorilla vs Shark . Mặc dù lý do không mang tính xây dựng được đề cập trong blog này không còn nữa, nhưng nó vẫn rất rộng (liệt kê tất cả sự khác biệt trong câu trả lời là tẻ nhạt), dựa trên thời gian (các tính năng có thể được thêm vào thay đổi điều này) và nói chung là không tốt phù hợp cho trang web này.
Erik A

Câu trả lời:


123
  • Firebase là một động cơ thời gian thực với kết nối ngược. Tức là bạn có thể xây dựng một ứng dụng đa nền tảng nơi khách hàng đăng ký các sự kiện trên dữ liệu cụ thể và máy chủ chủ động thông báo cho khách hàng về những thay đổi
  • Lớp dữ liệu được lưu trữ cho bạn. Nhớ rằng nó có khả năng mở rộng cao. Đó là một giải pháp tốt đẹp. Bao gồm quản lý xác thực
  • Lửa địa lý. Giải pháp tọa độ địa lý thời gian thực.
  • Hạn chế rõ ràng của Firebase là:
    • Bạn phải trả tiền cho nó ngay khi bạn bắt đầu phát triển
    • Bạn không thể lưu trữ trình dữ liệu (nếu việc sở hữu dữ liệu là quan trọng hoặc bạn phát triển ứng dụng cho một số mạng con riêng biệt)

EDIT: đây là một bài viết hay về cách thay thế Firebase trong ứng dụng của bạn bằng Node.js + MongoDb. Nó cho thấy bạn phải tự mình làm bao nhiêu công việc và giải thích, IMHO, tại sao một khởi động (ứng dụng nhỏ) nên bắt đầu với Firebase (nếu cần cập nhật theo thời gian thực cho khách hàng) và tiếp tục với MongoDb (trong mọi trường hợp giải pháp được viết) nếu dự án tiếp tục phát triển

EDIT 2: sau khi được Google Firebase mua lại, giờ đây cung cấp nhiều đặc quyền khác nhau trên các tính năng cơ bản mà bạn sẽ phải tự mình xây dựng:

  • Cho sự phát triển

  • Cho tăng trưởng

    • Cấu hình từ xa : Tùy chỉnh ứng dụng của bạn một cách nhanh chóng: phù hợp để thử nghiệm A / B
    • Liên kết động : Gửi người dùng đến đúng nơi trong ứng dụng của bạn
    • Thông báo : Tham gia với người dùng vào đúng thời điểm

39

Táo và cam. Firebase là một Dịch vụ phụ trợ có chứa quản lý danh tính, chế độ xem dữ liệu thời gian thực và cơ sở dữ liệu tài liệu. Nó chạy trong đám mây.

Mặt khác, MongoDB là một cơ sở dữ liệu chính thức với ngôn ngữ truy vấn phong phú. Về nguyên tắc, nó chạy trên máy của riêng bạn, nhưng có các nhà cung cấp đám mây.

Nếu bạn đang tìm kiếm thành phần cơ sở dữ liệu thì chỉ MongoDB trưởng thành hơn và giàu tính năng hơn nhiều.


31

Firebase được thiết kế để cập nhật theo thời gian thực. Nó dễ dàng tích hợp với góc cạnh. Cả hai đều là cơ sở dữ liệu NoQuery. MongoDB cũng có thể làm điều này với tích hợp Angular thông qua Socket.io. Meteor.js cũng sử dụng MongoDB với kết nối ổ cắm mở để cập nhật theo thời gian thực.

MongoDB có thể được chạy cục bộ hoặc được lưu trữ trên nhiều nhà cung cấp dựa trên đám mây khác nhau. Firebase, theo tôi là tuyệt vời cho các ứng dụng nhỏ hơn, rất nhanh để khởi động và chạy. MongoDB là lý tưởng cho các ứng dụng lớn hơn mạnh mẽ hơn, có thể tích hợp thời gian thực nhưng phải mất nhiều công sức hơn.


23

Sau khi sử dụng Firebase, tôi đã tìm thấy một số thứ đáng kể.

Nếu bạn có ý định sử dụng nó cho các ứng dụng lớn, thời gian thực, thì đó không phải là lựa chọn tốt nhất. Nó có một loạt các vấn đề riêng bao gồm một hệ thống xử lý lỗi xấu và các hạn chế. Bạn sẽ dành thời gian đáng kể để cố gắng hiểu Firebase và điều đó thật khó hiểu. Nó cũng khá dễ dàng để một dự án trở thành một thứ nguyên khối vượt khỏi tầm kiểm soát. MongoDB là một lựa chọn tốt hơn nhiều so với phần phụ trợ cho một ứng dụng lớn.

Tuy nhiên, nếu bạn cần tạo một ứng dụng nhỏ hoặc nhanh chóng tạo nguyên mẫu một cái gì đó, Firebase là một lựa chọn tuyệt vời. Nó sẽ là cách cực kỳ dễ dàng để chạy xuống đất.


22

Tôi sẽ trả lời câu hỏi này dưới dạng AngularFire, thư viện của Angbase cho Angular.

  1. Tl; dr: siêu năng lực. :-)

  2. Liên kết dữ liệu ba chiều của AngularFire. Angular liên kết khung nhìn và phạm vi $, nghĩa là những gì người dùng của bạn làm trong chế độ xem cập nhật tự động trong các biến cục bộ và khi JavaScript của bạn cập nhật một biến cục bộ, khung nhìn sẽ tự động cập nhật. Với Firebase, cơ sở dữ liệu đám mây cũng cập nhật tự động. Bạn không cần phải viết các yêu cầu $ http.get hoặc $ http.put, dữ liệu chỉ cần cập nhật.

  3. Liên kết dữ liệu năm chiều và bảy cách, chín cách, v.v. Tôi đã tạo ra một trò chơi tic-tac-toe bằng AngularFire. Hai người chơi có thể chơi cùng nhau, với hai chế độ xem cập nhật hai phạm vi $ và cơ sở dữ liệu đám mây. Bạn có thể tạo một trò chơi có ba người chơi trở lên, tất cả đều chia sẻ một cơ sở dữ liệu Firebase.

  4. Thư viện OAuth2 của AngularFire giúp ủy quyền dễ dàng với Facebook, GitHub, Google, Twitter, mã thông báo và mật khẩu.

  5. Bảo mật kép. Bạn có thể thiết lập các tuyến Angular của mình để yêu cầu ủy quyền và thiết lập các quy tắc trong Firebase về người có thể đọc và ghi dữ liệu.

  6. Không có kết thúc. Bạn không cần tạo một máy chủ với Node và Express. Chạy máy chủ của riêng bạn có thể rất nhiều công việc, yêu cầu biết về bảo mật, yêu cầu ai đó làm gì đó nếu máy chủ gặp sự cố, v.v.

  7. Nhanh. Nếu máy chủ của bạn ở San Francisco và khách hàng ở San Jose, tốt thôi. Nhưng đối với một khách hàng ở Bangalore kết nối với máy chủ của bạn sẽ chậm hơn. Firebase được triển khai trên toàn thế giới để kết nối nhanh chóng ở mọi nơi.


Fireloop là gì?, đây có phải là cách viết api còn lại với căn cứ hỏa lực không?
ashishSober

thực sự tôi nghĩ rằng angularfire thật tuyệt vời, có cách nào bạn có thể lấy nó và chuyển qua sử dụng với hệ thống cơ sở dữ liệu của riêng bạn không?, trong trường hợp này với Mongo, vì vậy thật tuyệt vời khi bạn có thể sử dụng ba liên kết dữ liệu và cũng để có thể cập nhật tức thời các giá trị của bạn
Kross

Tôi thích phần bình luận cuối cùng của bạn: "Firebase được triển khai trên toàn thế giới để kết nối nhanh chóng ở mọi nơi."
Lester

13

Theo kinh nghiệm của tôi, làm việc với Firebase là một lợi thế rất lớn nếu bạn đang cố gắng quản lý người dùng, cơ sở dữ liệu, loại ứng dụng nhắn tin vì tất cả các tính năng này đã được tích hợp tốt.

Giống như những người khác đã nói, nếu bạn chỉ tập trung vào khía cạnh cơ sở dữ liệu / truy vấn, hãy bám vào mongo.


13

Firebase là một bộ tính năng.

  • Cơ sở dữ liệu thời gian thực
  • Lưu trữ
  • Xác thực
  • Lưu trữ
  • Tin nhắn trên đám mây
  • Cấu hình từ xa
  • Phòng thí nghiệm thử nghiệm
  • Báo cáo sự cố
  • Thông báo
  • Lập chỉ mục ứng dụng
  • Liên kết động
  • Mời
  • AdWords
  • Quảng cáo

Tôi tin rằng bạn đang cố gắng so sánh Cơ sở dữ liệu thời gian thực Firebase với Mongo DB. Cơ sở dữ liệu thời gian thực Firebase lưu trữ dữ liệu dưới định dạng JSON và đồng bộ hóa với tất cả các cập nhật dữ liệu cho tất cả các khách hàng nghe dữ liệu. Nó trừu tượng bạn khỏi tất cả sự phức tạp cần thiết để thiết lập và mở rộng bất kỳ cơ sở dữ liệu nào. Tôi sẽ không đề xuất căn cứ hỏa lực nơi bạn có nhiều tình huống phức tạp khi cần tổng hợp dữ liệu. (Truy vấn cần loại công cụ SUM / AVERAGE). Mặc dù điều này gần đây có thể đạt được bằng cách sử dụng các chức năng Firebase. Mô hình hóa dữ liệu trong Firebase là khó khăn. Nhưng đó là cách tốt nhất để bạn bắt đầu ngay lập tức. MongoDB là một cơ sở dữ liệu. Điều này cung cấp cho bạn rất nhiều tính năng mạnh mẽ. Nhưng MongoDB khi được cài đặt trong bất kỳ nền tảng nào bạn cần phải tự mình quản lý nó.

Khi tôi cố gắng chọn giữa Firebase hoặc MongoDB (hoặc bất kỳ DB nào). Tôi cố gắng trả lời như sau.

  1. Có nhiều truy vấn tổng hợp được thực thi không (Giống như trong trường hợp công cụ báo cáo hoặc công cụ BI). Nếu có, đừng đi Firebase
  2. Tôi có cần phải thực hiện nhiều giao dịch. (Nếu có thì tôi không muốn sử dụng firebase) (Giao dịch có phần dễ dàng mặc dù sau khi giới thiệu các chức năng nhưng đó cũng là một chi phí nếu cần duy trì nhiều giao dịch)
  3. Dòng thời gian nào tôi có để có được mọi thứ và chạy. (Firebase rất dễ cài đặt và tích hợp).
  4. Tôi có chuyên môn để mở rộng DB và xử lý các vấn đề liên quan đến DB không. (Firebase giống như SAAS hơn nên không cần phải lo lắng về khả năng mở rộng)

13

Firebase cung cấp một số tính năng tốt như phản ánh thay đổi thời gian thực, tích hợp dễ dàng cơ chế xác thực và rất nhiều tính năng tích hợp khác để phát triển web nhanh chóng. Firebase, thực sự làm cho việc phát triển Web trở nên đơn giản đến mức không bao giờ tồn tại. Cơ sở dữ liệu Firebase là một nhánh của MongoDB .

Lợi thế của việc sử dụng Firebase so với MongoDB là gì?

Bạn có thể tận dụng tất cả các tính năng tích hợp của Firebase trên MongoDB.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.