Closed1

firestoreでサブコレクションの追加の仕方

nerusannerusan

概要

firestoreのサブコレクションの追加の仕方についてまとめる

方法

sample.ts
  async addFavoriteProduct(userId: string, product: string) {
    try {
      // 保存先の指定
     // db, コレクション1, 各コレクション, サブコレクション1, 各コレクション
      const path = doc(db, 'user', userId, 'favorite_products', productId);
      const updatedTime = firebaseTimestamp.now();
     // 登録データ
      const updatedData = { product_id: product, updated_at: updatedTime };

   // 保存
      await setDoc(path, updatedData, { merge: true });
    } catch (error) {
      throw new Error('お気に入り登録失敗');
    }
  }
firestore.rules
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
+     match /favorite_products/{productId} {
+       allow create
+       allow read: if request.auth.uid != null;
+       allow write: if request.auth.uid != null;
+     }
    }
  }
}

最後に以下のコマンドを実行することで書き込み読み取りを許可する必要がある

shell
$ firebase deploy --only firestore:rules
このスクラップは2023/05/31にクローズされました