見出し画像

AIにFirestoreの設計書を書いてもらった

本当にできるのだろうか?。。。試してみた!


おおすごいぞ!、本当にできましたね。用途のところに「こんな使い方しますよと解説入れてきた!」これからはAIを使いこなせるエンジニアじゃないと市場価値が上がらないかも😅

セキュリティールールはどう書けばいいですか?

Firestoreのセキュリティールールは、誰がどのようにアプリにアクセスできるかを制御します。適切に構成されたセキュリティールールは、アプリのデータのプライバシーとセキュリティを確保するために非常に重要です。以下は、ユーザーコレクションと投稿サブコレクションのセキュリティールールの例です。

ユーザーコレクションのセキュリティールール

service cloud.firestore {
  match /databases/{database}/documents {
  
    // ユーザーコレクションのドキュメントに対するルール
    match /users/{userId} {
      
      // 認証されたユーザーのみがユーザードキュメントを作成できる
      allow create: if request.auth != null;
      
      // ユーザー自身のドキュメントのみを読み取ることができる
      allow read: if request.auth.uid == userId;
      
      // ユーザー自身のドキュメントのみを更新できる
      allow update: if request.auth.uid == userId;
      
      // ドキュメントを削除することはできない
      allow delete: if false;
    }
  }
}

このセキュリティルールでは、認証されたユーザーだけが新しいユーザードキュメントを作成できます。また、各ユーザーは自分自身のユーザードキュメントのみを読み取り、更新することができます。ユーザードキュメントは削除できません。

投稿サブコレクションのセキュリティールール

service cloud.firestore {
  match /databases/{database}/documents {
  
    // 投稿サブコレクションのドキュメントに対するルール
    match /users/{userId}/posts/{postId} {
      
      // 認証されたユーザーのみが新しい投稿ドキュメントを作成できる
      allow create: if request.auth != null;
      
      // 投稿ドキュメントの作成者のみが読み取ることができる
      allow read: if resource.data.authorId == request.auth.uid;
      
      // 投稿ドキュメントの作成者のみが更新できる
      allow update: if resource.data.authorId == request.auth.uid;
      
      // 投稿ドキュメントを削除することはできない
      allow delete: if false;
      
      // 投稿の「いいね!」数を更新できる
      allow update: if request.resource.data.like == resource.data.like + 1;
    }
  }
}

この記事が気に入ったらサポートをしてみませんか?