BETA

Firestoreでユーザーが他人の投稿を編集できないようにする

投稿日:2018-11-08
最終更新:2018-11-14

やりたいこと

  • ログインしていればユーザーは自由にデータを投稿できる。
  • 投稿したデータはそのデータを投稿したユーザーにしか編集できないようにする。
  • 投稿したデータの取得は自由。

書いたルール

これであってますかね? 投稿時にdocumentにuidを保存しています。

service cloud.firestore {
    match /databases/{database}/documents {
        match /post/{post_id} {
            allow read: if true;
            allow create: if request.auth.uid != null && request.auth.uid == request.resource.data.uid;
            allow update: if resource.data.uid == request.auth.uid;
        }
    }
}

追記

allow createの部分で、「 request.auth.uid != null 」のみだと、自分が作ったdataのuidを別のユーザーのものに変えて保存できそうだったので、「request.auth.uid == request.resource.data.uid」も付け足しました。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@1phXZYyP8NTs1yKwの技術ブログ

よく一緒に読まれる記事

1件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
11/08 21:19

ログにしたつもりが記事になってた…