リアルタイムvsクラウドFirestore:どのFirebaseデータベースを選択するか

公開: 2018-10-12

歴史はFirebaseデータベースにさかのぼります。 モバイルおよびウェブ開発プラットフォームとして設立されたFirebaseは、2011年に誕生し、2014年にテクノロジー大手のGoogleに買収され、運命が変わりました。

Firebaseの進化の歴史を先取りし、Googleによる買収から1年以内に、Divshotと統合されて以来、モバイル開発者向けの統合プラットフォームにまで拡大しました。

Firebaseは現在、他のさまざまなGoogleサービスと統合して、開発者に幅広い製品と規模を提供しています。 実際、Firebaseが提供するメリットにより、 Firebaseはスタートアップ向けのトレンドプロセスになっています。

では、Firebaseデータベースとは何ですか? FirebaseはBaaS、つまりサービスとしてのバックエンドです。 Firebaseが提供する製品を使用して、高品質のアプリケーションを構築できるのはモバイル開発者だけではありません。 Googleは、FirebaseWebユーザー向けにもいくつかの新機能をリリースしました。

Firebaseには2つの製品があり、今述べたすべてのアプリケーションを構築できます。 リアルタイムおよびクラウドFirestore。

Realtimeは、GoogleのFirebaseデータベースとCloud Firestoreの定評のある製品ですが、より優れたテクノロジーを約束していますが、まだベータテスト段階にあります。

グーグルによると:

リアルタイムデータベースは、Firebaseの元のデータベースです。 これは、クライアント間でリアルタイムに状態を​​同期する必要があるモバイルアプリ向けの効率的で低レイテンシのソリューションです。

Cloud Firestoreは、モバイルアプリ開発のためのFirebaseの新しいフラッグシップデータベースです。 これは、新しい、より直感的なデータモデルを使用して、リアルタイムデータベースの成功を改善します。 Cloud Firestoreは、リアルタイムデータベースよりも豊富で高速なクエリと拡張性も備えています。

RealtimeDatabaseとCloudFirestoreの個々のプロパティに入る前に、次のプロジェクトでFirebaseデータベースを使用することの長所と短所を見てみましょう。

Firebaseデータベースの利点:

Advantages of Firebase Database 理由のリストを見ると、すべてのモバイルアプリとウェブアプリの開発でFirebaseデータベースをワンストップデータベースとして使用する必要がある理由がわかります。Firebasedbがモバイルアプリ開発業界でこれほど大きなヒットとなった理由がわかります。

  • 簡単なデータ移行–最近の開発により、開発者はデータを簡単に移行するためのツールを利用できるようになりました。
  • 追加の知識は必要ありません– Firebase dbで動作するために、devOpsまたはsysadminに関する知識はほとんど必要ありません。
  • さまざまなデータ型の検証– Firebaseデータベース構造はスキーマレスですが、さまざまなデータ型を検証する基本的な機能を備えています。
  • ワンストップツール–これは包括的なツールであり、小さなモバイルアプリケーションのバックエンドに必ず必要な唯一のツールです。
  • 使いやすさ–使用の難易度は平均を少し上回っていますが、分析およびクラッシュ監視との統合に関しては、他のほとんどのシステムよりも簡単です。
  • 無料使用–初期段階では無料なので、初めて試す開発者は大きな初期投資を心配する必要はありません。
  • 豊富なコードライブラリ–プログラミング言語全体のすべてのコードライブラリは類似しており、初心者にとってもよく維持されています。
  • JSONデータ構造–データ構造はJSONであり、UIJavaScriptと完全に一致します。
  • 迅速な開発–アプリケーションを最初から作成するのは非常に高速です–認証、電子メール、バージョン管理、ホスティング、監視、DevOps、稼働時間。
  • 簡単なストリーミング–リアルタイムの機能またはストリーミングの更新は非常に簡単です。

次に、RealtimeデータベースとCloud Firestoreを比較して、どちらをいつ使用するかをより明確に理解しましょう。 クラウドファイヤーストアはまだベータテスト段階にあり、リアルタイムデータベースよりも有望な方法で検索および動作しています。 この比較では、2つのデータベースが互いにどのように異なり、リアルタイムデータベースとクラウドファイアストアのどちらが勝つかを確認します。

データ・モデル

  • リアルタイムデータベースは、データを1つの大きなJSONツリーとして保存するため、単純なデータを非常に簡単に保存できますが、複雑なデータや階層型データを大規模に整理するのは困難です。
  • 一方、 Cloud Firestoreは、コレクションに編成されたドキュメントの形式でデータを保存します。 この点で、単純なデータの保存はJSONに似ており、ドキュメントに保存されます。 一方、複雑なデータや階層データは、ドキュメント内のサブコレクションを使用して大規模に整理するのは簡単ではありません。 そして全体として、それはより少ない非正規化とデータの平坦化を必要とします。

リアルタイムおよびオフラインのサポート

  • リアルタイムデータベースは、AndroidおよびiOSモバイルクライアントのみにオフラインサポートを提供します。
  • 一方、 Cloud Firestoreは、Android、iOS、およびWebクライアントにもオフラインサポートを提供します。

クエリ

  • リアルタイムデータベースは、開発者が単一のクエリでプロパティを並べ替えまたはフィルタリングできる、限定された並べ替えおよびフィルタリング機能を備えた詳細なクエリを提供します。 また、すべてのクエリはデフォルトで詳細です。つまり、常にサブツリー全体を返します。
  • Cloud Firestoreは、複合ソートとフィルタリングを使用してクエリにインデックスを付けます。開発者は、単一のクエリでプロパティのフィルタリングとソートを連鎖的に結合できます。 サブコレクションに対して浅いクエリを作成することもできます。つまり、開発者は、コレクション全体またはドキュメント全体ではなく、ドキュメント内でクエリを実行できます。 これだけでなく、クエリはデフォルトでインデックス付けされます。これは、クエリのパフォーマンスがデータセットではなく結果セットのサイズに比例することを意味します。

トランザクション

  • リアルタイムデータベースに、基本的な書き込み操作とトランザクション操作があります。 データの書き込みは個別の操作として機能し、トランザクションにはネイティブSDKでの完了コールバックが必要です。
  • Cloud Firestoreを使用すると、Atomicの書き込みおよびトランザクション操作が可能になります。 操作をバッチ処理し、自動的に完了します。 また、トランザクションは、完了するまで自動的に繰り返されます。

パフォーマンスと信頼性

  • リアルタイムデータベースは成熟した製品です それは、何度も試され、テストされた真の製品の安定性を持っています。 また、レイテンシーが非常に低いため、頻繁な状態同期に適したオプションです。 ただし、データベースは単一のリージョンでのゾーンの可用性に制限されています。
  • Cloud Firestoreのパフォーマンスは、まだベータ段階であるため、まだ測定できません また、ベータ版製品の安定性は、完全に発売された製品の安定性と同じではありません。 ただし、信頼性に関しては、Cloud Firestoreは、さまざまな地域の複数のデータセンターにまたがるすべてのデータを格納し、グローバルなスケーラビリティと強力な信頼性を保証します。 理論的には、Cloud Firestoreのベータ版がリリースされるたびに、Realtimeデータベースよりも信頼性が高くなります。

スケーラビリティ

  • リアルタイムデータベースで、スケーリングにはシャーディングが必要です。 簡単に言うと、単一のデータベースで約100,000の同時接続と1000の書き込み/秒にスケーリングし、それを超えると、複数のデータベース間でデータをシャーディングする必要があります。
  • Cloud firestoreがベータ版からリリースされると、スケーリングは自動的に行われ、開発者は複数のインスタンス間でデータをシャーディングする必要がなくなります

安全

  • リアルタイムデータベースには、個別の検証を必要とするカスケードルールがあります。 ここでのセキュリティオプションはfirebaseデータベースルールのみであり、開発者は「validate」ルールを使用してデータを個別に検証する必要があります。
  • Cloud Firestoreは、Identity and Access Management(IAM)を使用するモバイル、Web、およびサーバーSDKに対して、よりシンプルで強力なセキュリティを備えています。 データ検証も自動的に行われます。 また、ルールによってクエリが制約される可能性があります。つまり、クエリの結果に開発者がアクセスできないデータが含まれている可能性がある場合、クエリ全体が失敗します。

価格設定

  • リアルタイムデータベース、帯域幅とストレージに対してのみ課金されますが、より高い価格になります。
  • 一方、 Cloud Firestoreは、主にデータベースで実行される操作(読み取り、書き込み、削除)に対して、より低いレート、帯域幅、およびストレージで課金します。 また、Google AppEngineプロジェクトの1日の支出制限もサポートしています。

Firebaseがどのように機能するのかまだ疑問に思っていますか? 上記の記事で知っていることの要約を巻き戻しましょう。

How Does Firebase Work

リアルタイムデータベースを使用する場合:

  • データが単純で、複雑でも階層的でもない場合
  • 単一のデータベースで100,000の同時接続未満でスケーリングする必要がある場合は、1000書き込み/秒
  • 実行される個々の操作ではなく、全体的な帯域幅とストレージに対して課金するデータベースが必要な場合。

Cloud Firestoreデータベースを使用する場合:

  • データが複雑または階層的である場合
  • データが100,000を超える同時接続に対応する場合
  • より正確な支出制限が必要な場合、主に1で課金されるデータベースは、PicCollage、Fabulous、Shazam、Skyscannerであり、これらが正常に実行されていることに同意できます。

結論として、Firebasedbモデルはうまく機能しています。 リアルタイムFirebaseは、何年にもわたって正常に実行されており、昨年はCloud Firestoreのベータ版がリリースされました。モバイルアプリ開発者やアプリ開発会社には、より良いものが用意されています。