📄
Firestore:ドキュメントとコレクションについて
※対応するデータ型
-
整数
-
浮動小数点数
-
テキスト文字列
-
ブール値
-
バイト値
-
Null値
-
日時
-
配列
-
マップ(Map)
等々
詳しい詳細は,下記参照
コレクションとドキュメント
- コレクション:ドキュメントだけをまとめている.
-
ドキュメント:データ(一連の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 に格納されたドキュメントは存在する場合があります。親ドキュメントを削除するときにサブコレクション内のドキュメントも削除する場合は、コレクションを削除するで説明されているように、手動で削除する必要があります
参考文献
Discussion