📄

Firestore:ドキュメントとコレクションについて

2024/07/19に公開

※対応するデータ型

  • 整数

  • 浮動小数点数

  • テキスト文字列

  • ブール値

  • バイト値

  • Null値

  • 日時

  • 配列

  • マップ(Map)
    等々

詳しい詳細は,下記参照

https://firebase.google.com/docs/firestore/manage-data/data-types?hl=ja

コレクションとドキュメント

  • コレクション:ドキュメントだけをまとめている.
  • ドキュメント:データ(一連のKey-Valueペア)を格納している.
    基本的には,JSONと同等の構成
    • ドキュメントは,全てコレクションに保存されている必要がある.
    • ドキュメント内で,コレクション(サブコレクション)を格納することができる.

具体例

  • ドキュメント例:ユーザalovelaceを表すalovelaceドキュメント
🔖alovelace
first : "Ada"
last : "Lovelace"
born : 1815
  • コレクション例:複数のユーザをまとめているusersコレクション
📑users
    🔖alovelace
    first : "Ada"
    last : "Lovelace"
    born : 1815

    🔖aturing
    first : "Alan"
    last : "Turing"
    born : 1912
  • サブコレクション例:メッセージとチャットルームを使ったチャットアプリの事例

  • rooms:各チャットルーム(ドキュメント)をまとめているコレクション

  • messages:チャットルーム(ドキュメント)内で一つ以上のメッセージ(ドキュメント)をまとめているコレクション(サブコレクション

📑rooms
    🔖roomA
    name : "my chat room"
    📑messages
        🔖message1
        from : "alex"
        msg : "Hello World!"
        🔖message2
        ...
    🔖roomB
    ...

設計上の注意点

Firestoreは,スキーマレス

コレクションとドキュメントが交互になるパターンに従う必要がある

ドキュメントの名前は,一意である

ドキュメント作成や削除のために,コレクションを作成および削除をする必要はない

ドキュメントを削除しても,そのドキュメントのサブコレクションは削除されない.

以下,公式ドキュメントから引用

サブコレクションを含むドキュメントを削除しても、それらのサブコレクションは削除されません。たとえば、ドキュメント coll/doc は存在しなくなったにもかかわらず、coll/doc/subcoll/subdoc に格納されたドキュメントは存在する場合があります。親ドキュメントを削除するときにサブコレクション内のドキュメントも削除する場合は、コレクションを削除するで説明されているように、手動で削除する必要があります

参考文献

https://firebase.google.com/docs/firestore/data-model?hl=ja

https://firebase.google.com/docs/firestore/manage-data/data-types?hl=ja

Discussion