MongoDBとFirebase [終了]


149

MongoDBよりもFirebaseを使用することの定量的な利点は何ですか?(意見ではない)

Firebaseは独自のAPIを備えたクラウドベースのサービスであることは知っていますが、長期的にはMongoがより優れた制御を提供できるように感じます。


53
@David意見に基づくものではありません。OPはされません(意見に基づくことと思われる)優れている尋ねるが、(もしあれば)のMongoDB上でFBの利点を求めています。意見を得るために、ここでは両方の利点と両方の欠点を引き出し、どちらの技術が好ましいかを判断する必要があります
Kirill Slatin 2015年

私はこれまでを読むために@itsclarkeをお勧めします:crisp.chat/blog/...
ジュニアMayhé

2
@KirillSlatinこの質問は締め切りました。なぜこのような質問がゴリラ対シャークのブログ投稿で認められないのかを読むことができます。このブログで言及されている建設的でない理由は利用できなくなりましたが、それでも非常に広範であり(回答​​のすべての違いを列挙するのは面倒です)、非常に時間ベースであり(これを変更する機能が追加される可能性があります)、通常は適切ではありませんこのサイトに適合。
エリックA

回答:


123
  • Firebaseは、後方接続を備えたリアルタイムエンジンです。つまり、クライアントが特定のデータに関するイベントをサブスクライブし、サーバーが変更についてクライアントにアクティブに通知するクロスプラットフォームアプリを構築する可能性があります。
  • データレイヤーはあなたのためにホストされています。非常にスケーラブルであることに注意してください。これは素晴らしいキックスターターソリューションです。認証管理を含む
  • ジオファイア。リアルタイムの地理座標ソリューション。
  • Firebaseの明らかな欠点は次のとおりです。
    • 成長し始めたらすぐに支払います
    • データレイヤーをホストすることはできません(データを所有することが重要な場合、または別のサブネット用にアプリを開発する場合)

編集:アプリのFirebaseをNode.js + MongoDbに置き換える方法については、こちらの記事をご覧ください。これは、自分で行う必要がある作業量を示し、IMHO、スタートアップ(小さなアプリ)がFirebaseから始まり(クライアントへのリアルタイムの更新が必要な場合)、MongoDbに進む理由を説明します(いずれの場合も自己) -書かれた解決策)プロジェクトが進化し続ける場合

編集2:Google Firebase に買収された後、自分で構築するのに苦労する基本的な機能に加えて、さまざまな特典が提供されます:

  • 開発用

  • 成長のために

    • Remote Config:アプリをその場でカスタマイズ:A / Bテストに適しています
    • Dynamic Links:アプリ内の適切な場所にユーザーを誘導します
    • 通知:適切なタイミングでユーザーと交流する

39

リンゴとオレンジ。Firebaseは、アイデンティティ管理、リアルタイムデータビュー、ドキュメントデータベースを含むサービスとしてのバックエンドです。クラウドで実行されます。

一方、MongoDBは、豊富なクエリ言語を備えた本格的なデータベースです。原則として自分のマシンで動作しますが、クラウドプロバイダーもあります。

データベースコンポーネントを探している場合、MongoDBだけがはるかに成熟し、機能が豊富です。


31

Firebaseはリアルタイム更新用に設計されています。Angularと簡単に統合できます。どちらもNoSQLデータベースです。MongoDBは、Socket.io統合を通じてAngularでもこれを行うことができます。Meteor.jsは、リアルタイムの更新のためにオープンソケット接続でMongoDBも使用します。

MongoDBはローカルで実行することも、さまざまなクラウドベースのプロバイダーでホストすることもできます。Firebaseは、私の意見では、小さいアプリに最適で、すぐに起動して実行できます。MongoDBは、より堅牢で大規模なアプリに最適です。リアルタイムでの統合は可能ですが、少し手間がかかります。


23

Firebaseを使用した後、かなりの量を見つけて何かを見つけました。

大規模なリアルタイムアプリに使用する場合は、最適な選択肢ではありません。それは悪いエラー処理システムや制限を含む独自の幅広い問題を抱えています。Firebaseを理解するためにかなりの時間を費やします。また、プロジェクトが制御不能なモノリシックなものになることも非常に簡単です。大きなアプリのバックエンドに関しては、MongoDBの方がはるかに優れています。

ただし、小さなアプリを作成したり、何かのプロトタイプをすばやく作成したりする必要がある場合は、Firebaseが最適です。非常に簡単に地面を打つことができます。


22

この質問には、AngularのFirebaseライブラリであるAngularFireの観点から答えます。

  1. Tl; dr:超大国。:-)

  2. AngularFireの3方向データバインディング。Angularはビューと$ scopeをバインドします。つまり、ビューでユーザーが行うことはローカル変数で自動的に更新され、JavaScriptがローカル変数を更新するとビューが自動的に更新されます。Firebaseでは、クラウドデータベースも自動的に更新されます。$ http.getまたは$ http.putリクエストを記述する必要はありません。データは更新されるだけです。

  3. 5方向のデータバインディング、7方向、9方向など。AngularFireを使用して三目並べゲームを作成しました。2つのプレーヤーが一緒にプレイでき、2つのビューが2つの$ scopesとクラウドデータベースを更新します。すべてが1つのFirebaseデータベースを共有する3人以上のプレーヤーでゲームを作成できます。

  4. AngularFireのOAuth2ライブラリーは、Facebook、GitHub、Google、Twitter、トークン、およびパスワードを使用した認証を容易にします。

  5. 二重のセキュリティ。承認を要求するようにAngularルートを設定し、データを読み書きできるユーザーに関するルールをFirebaseで設定できます。

  6. バックエンドはありません。NodeとExpressでサーバーを作成する必要はありません。独自のサーバーを実行することは、多くの作業であり、セキュリティについて知る必要があり、サーバーがダウンした場合に誰かが何かをする必要があるなどです。

  7. 速い。サーバーがサンフランシスコにあり、クライアントがサンノゼにある場合は問題ありません。ただし、サーバーに接続するバンガロールのクライアントの場合は遅くなります。Firebaseは世界中に展開されており、どこにでも高速接続できます。


Fireloopとは何ですか?これは、FirebaseでREST APIを作成する方法ですか?
ashishSober 2017年

実際にangularfireは素晴らしいと思います、あなたが自分のデータベースシステムで使用するためにそれを手に入れて渡すことができる方法はありますか?また、瞬時に値を更新できるようにするため
Kross

私はあなたのコメントの最後の部分が好きです:「Firebaseは世界中のどこにでも高速接続できるように配備されています。」
レスター

13

私の経験では、Firebaseを使用することは、ユーザー管理、データベース、メッセージングなどのアプリを実行する場合に非常に有利です。これらの機能はすべてすでに十分に統合されているためです。

他の人が言ったように、もしあなたが単にデータベース/クエリの側面に集中しているなら、mongoに固執してください。


13

Firebaseは一連の機能です。

  • リアルタイムデータベース
  • ホスティング
  • 認証
  • ストレージ
  • クラウドメッセージング
  • リモート設定
  • テストラボ
  • クラッシュレポート
  • お知らせ
  • App Indexing
  • 動的リンク
  • 招待する
  • 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を使いたくありません)(トランザクションの導入は、関数の導入後は多少簡単ですが、多くのトランザクションを維持する必要がある場合のオーバーヘッドでもあります)
  3. 準備して実行するために必要なタイムラインは何ですか(Firebaseのセットアップと統合は非常に簡単です)。
  4. DBをスケールアップし、DB関連のものをトラブルシューティングする専門知識はありますか?(FirebaseはSAASに似ているため、拡張性を心配する必要はありません)

13

Firebaseは、リアルタイムの変更リフレクション、認証メカニズムの簡単な統合、迅速なウェブ開発のための他の多くの組み込み機能など、いくつかの優れた機能を提供します。Firebaseは、Web開発をこれまでにないほどシンプルにします。FirebaseデータベースはMongoDBのフォークです

MongoDBよりもFirebaseを使用する利点は何ですか?

MongoDBではなく、Firebaseすべての組み込み機能を利用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.