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.
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.
Câu trả lời:
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
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.
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.
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.
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.
Tl; dr: siêu năng lực. :-)
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.
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.
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.
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.
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.
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.
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.
Firebase là một bộ tính năng.
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.
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.