AIイノベーションズ

Firestoreでサブコレクションにドキュメントを追加する方法(Web または JavaScript)

Firestoreのサブコレクションに新しいドキュメントを追加する具体的な方法をJavaScriptコード例付きで解説。addDoc()とsetDoc()の両方のケースを紹介します。

新たなドキュメント(データ)を作成し、サブコレクションに追加するためには以下のコードを実行します。

Firebaseを初期化する

この初期化コードは省略します。

addDoc()でサブコレクションにドキュメントを追加する場合

addDoc()メソッドを使うと、FirestoreがIDを自動生成してくれます。

レファレンスを作る時に、親ドキュメントのIDとサブコレクションの名前を入れる必要があるだけで、それ以外は普通にドキュメントを追加するときと全く同じです。

// roomsのドキュメントの深い層に、messagesというサブコレクションを持つ場合
// rooms
//   - document
//     - messages
 
// 変数を用意
const collectionName = "rooms";
const docId = "foo";
const subcollectionName = "messages";
 
// サブコレクションのレファレンス
const collectionRef = collection(db, collectionName, docId, subcollectionName);
 
// addDoc()で追加する
await addDoc(collectionRef, {
  content: "hello world",
  user_id: "foofoo"
});

setDoc()でサブコレクションにドキュメントを追加する場合

setDoc()メソッドを使うと、ドキュメントのIDを指定してドキュメントを作成できます。

// 新たに追加するドキュメントのID
const newDocId = "foofoofoo";
 
// サブコレクションのドキュメントのレファレンス
const docRef = doc(db, collectionName, docId, subcollectionName, newDocId);
 
// setDoc()で追加する
await setDoc(docRef, {
  content: "hello world",
  user_id: "foofoo"
});

※適宜変数に値を代入してください。

On this page