Firestoreを利用していて、コレクションの数を取得する機会が何回かあったのでメモとして記録しておきます。
必要なものをインポートする
まだFirestoreのセットアップができていない方は、セットアップの方法の記事もあげているので是非ご覧ください。
Firebaseを使い始めるために必要な手順
sample
import firebase from "firebase/compat";
const db = firebase.firestore();
Firestoreのコレクションのドキュメント数を取得してみる
例えば、usersコレクション>userIDドキュメント>ordersコレクションという階層になっているコレクションから、
あるユーザーの注文回数を取得したい場合は下記にようにすれば取得することができます。
sample
async getOrderCount(): Promise<void> {
let orderCount = 0;
await db
.collection("users")
.doc("userID")
.collection("orders")
.get()
.then((snap) => {
orderCount = snap.size;
});
}
同じ方法でサブコレクションのドキュメント数を取得することもできる
usersコレクション>userIDドキュメント>ordersコレクション>orderIDドキュメント>orderItemコレクションという階層になっているコレクションで、あるユーザーのある注文の注文商品個数を取得したいときは以下のようにすれば取得することができます。
sample
async getOrderItemCount(): Promise<void> {
let orderItemCount = 0;
await db
.collection("users")
.doc("userID")
.collection("orders")
.doc("orderID")
.collection("orderItem")
.get()
.then((snap) => {
orderItemCount = snap.size;
});
}