Firestoreのクラス関係を図で整理

FirestoreのSDKを使っていると、Collection/Document/QuerySnapshot/DocumentSnapshot、、、、、などなどなど、用語が多すぎてわけわからないことになるので整理しました。

基本的なデータモデルの話はこちらをご覧ください。

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

各クラスの関係

上記の図を参考にいくつかの例を確認してみましょう 例は一応Node.jsでFirebase Admin SDKを使った場合を想定しています。

コレクションA内のドキュメントの数を取得する

const snapshot = await firestore.collection("A").get();
console.log(snapshot.docs.length);

コレクションC1内のドキュメントDに含まれるtextを取得

const docSnapshot = await firestore.collection("C1").doc("D").get();
if(docSnapshot.exists) {
  const obj = docSnapshot.data();
  console.log(obj.text);
}

上の図を参考にすると、とってもスムーズに書けますね😉