Firebase Summit のすべての発表内容に目を通し、Firebase を活用してアプリ開発を加速し、自信を持ってアプリを実行できる方法をご確認ください。 詳細

データ構造を選択する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Cloud Firestore でデータを構造化する場合、いくつかの異なるオプションがあることに注意してください。

  • ドキュメント
  • 複数のコレクション
  • ドキュメント内のサブコレクション

ユースケースに関連する各オプションの利点を検討してください。このガイドでは、階層データの構造の例をいくつか紹介しています。

ドキュメント内のネストされたデータ

ドキュメント内で配列やマップなどの複雑なオブジェクトをネストできます。

  • 利点:ドキュメント内に保持したいデータの単純な固定リストがある場合、これは簡単に設定でき、データ構造を合理化します。
  • 制限:これは、特にデータが時間の経過とともに拡大する場合、他のオプションほどスケーラブルではありません。リストが大きくなったり大きくなったりすると、ドキュメントも大きくなり、ドキュメントの取得時間が遅くなる可能性があります。
  • 考えられるユースケースは何ですか?たとえば、チャット アプリでは、ユーザーが最近アクセスした 3 つのチャット ルームをネストされたリストとしてプロファイルに保存できます。
  • アロブレイス
    • 名前 :
      最初:「エイダ」
      ラスト:「ラブレース」
      生まれ:1815年
      部屋 :
      0 : 「ソフトウェアチャット」
      1:「有名人」
      2:「有名SWE」

サブコレクション

時間の経過とともに拡大する可能性のあるデータがある場合は、ドキュメント内にコレクションを作成できます。

  • 利点:リストが大きくなっても、親ドキュメントのサイズは変わりません。また、サブコレクションに対して完全なクエリ機能を利用でき、サブコレクション全体でコレクション グループ クエリを発行できます。
  • 制限:サブコレクションを簡単に削除することはできません。
  • 考えられるユースケースは何ですか?たとえば、同じチャット アプリで、チャット ルーム ドキュメント内にユーザーまたはメッセージのコレクションを作成できます。
  • サイエンス
    • ソフトウェア
      name : 「ソフトウェアチャット」
      • ユーザー
        • アロブレイス
          最初:「エイダ」
          ラスト:「ラブレース」
        • スライド
          最初:「サリー」
          last : "ライド"`


    • 天体物理学
      • ...

ルートレベルのコレクション

データベースのルート レベルでコレクションを作成して、異種のデータ セットを整理します。

  • 利点:ルート レベルのコレクションは多対多の関係に適しており、各コレクション内で強力なクエリを実行できます。
  • 制限:本来階層化されているデータの取得は、データベースが大きくなるにつれてますます複雑になる可能性があります。
  • 考えられるユースケースは何ですか?たとえば、同じチャット アプリで、ユーザー用に 1 つのコレクションを作成し、ルームとメッセージ用に別のコレクションを作成できます。
  • ユーザー
    • アロブレイス
      最初:「エイダ」
      ラスト:「ラブレース」
      生まれ:1815年
    • スライド
      最初:「サリー」
      ラスト:「ライド」
      生年月日:1951年
  • ルーム
    • ソフトウェア
      • メッセージ
        • メッセージ1
          from : 「アロヴェレス」
          コンテンツ : "..."
        • メッセージ 2
          から:「スライド」
          コンテンツ : "..."