🐕
Firestore: インデックス(複合,単一フィールド) #CollectionGroup
使ってみたいメソッド
QuerySnapshot.docChanges
最後のスナップショット以降のドキュメントの変更の配列を返します。これが最初のスナップショットである場合、すべてのドキュメントが「追加された」変更としてリストに表示されます。
CollectionGroup サンプルコード
firestore.js
export async function collectGroup(user) {
const membersByUser = query(collectionGroup(db, 'members'), where('user_id', '==', user.id));
const querySnapshot = await getDocs(membersByUser);
querySnapshot.forEach((doc) => {
console.log(doc.id, ' => ', doc.data());
});
}
インデックス: 複合、単一フィールド
- 実行後、consoleにでてきたURL叩いたら自動的にインデックス貼ってくれた:
- でてきたデータ
余談
Firestore(['users']).fetch();
Firestore(['users'], [['height', '==', 170]]).fetch();
const users = await Firestore(['users'], [['email', '==', email]).fetch();
Firestore(['users', user.id]).fech();
// SWRのpathやTanstackQueryのkeyなど、fetchライブラリと相性が良いように、
// キャッシュのキーともなる文字列で。
Firestore(`/users/${user.id}/thumbnails`)
.where(['height', '==', 170])
.where(['weight', '==', 80])
.fetch();
Discussion