データ構造の理解
- コレクション
- ドキュメント
- フィールド
コレクションとは
データベースのルート要素で、ドキュメントの集合。
配下にドキュメントを持つことができる。
コレクションの生成と破棄は意識しなくてよい。ドキュメントを作成すればコレクションは自動生成され、ドキュメントが存在しなくなればコレクションは自動的に破棄される。
ドキュメントとは
それぞれユニークなIDを持つ必要がある。(自動or自分で決める)
フィールドとは
データ。
サブコレクションとは
ドキュメントに保存されるコレクション。
必ず、次のような構造になる。
コレクション > ドキュメント > サブコレクション > ドキュメント > サブコレクション>・・・
関数
取得
- コレクションへの参照を取得…
const colRef = collection(db, コレクション名)
- 単一documentへの参照を取得…
const docRef = doc(コレクションへの参照, ドキュメント名);
const docRef = doc(colRef, "LA");
- 自動生成ドキュメントIDへの参照を取得…
const newCityRef = doc(colRef); // ドキュメント名の引数がないので、ランダムなIDが振られる
作成・更新
- ドキュメントIDを指定して作成と更新
SetDoc()
IDをLAで指定。LAがあれば更新、無ければ自動で作成される。
const docRef = doc(db, "cities", "LA");
const data = {
name: "Los Angeles",
state: "CA",
country: "USA",
}
await setDoc(docRef, data);
- ランダムなIDが付与されたドキュメントの作成
addDoc()
const colRef = collection(db, "cities");
const data = {
name: "Los Angeles",
state: "CA",
country: "USA"
};
await addDoc(colRef, data);
- ドキュメントの一部のデータを更新・作成
updateDoc()
const newCityRef = doc(collection(db, "cities"));
const data = {
name: "Los Angeles",
state: "CA",
country: "USA",
};
await setDoc(newCityRef, data);
await updateDoc(newCityRef, {
country: "Tokyo", // USAからTokyoに更新
});