質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

Q&A

0回答

872閲覧

firestore セキュリティルールのエラー

ashe

総合スコア0

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

0グッド

0クリップ

投稿2021/08/06 02:17

当初以下のように設定していました。これならエラーは出ないのですが、match /{document=**} の部分ですべてのドキュメントのreadを許可しているので脆弱だというメッセージをもらい、変更を検討。

rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read : if true } match /users/{usersID} { allow write: if request.auth.uid == usersID } match /posts/{postsID} { allow write: if 'users/' + request.auth.uid != request.resource.data.user_id } } }

そこでいったん以下のように変更しましたが、エラーとなりクライアント側からアクセスできなくなりました。

rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /users/{usersID} { allow read ; allow write: if request.auth.uid == usersID } match /posts/{postsID} { allow read ; allow write: if 'users/' + request.auth.uid != request.resource.data.user_id } } }

Uncaught (in promise) FirebaseError: Missing or insufficient permissions.

両者の設定でやっていることは同じに思えるので、エラーの理由が不明です。
詳しい方、思い当たる原因を教えていただけますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anozon

2021/08/06 02:40

/users, /posts 以外のdocumentを読みに行っている箇所がある可能性はありますか?
ashe

2021/08/06 02:45

上記の例は簡略化していますが、users, posts 以外にもdocumentがひとつあり、そこにも同様に ```allow read : if true``` を入れています。 すべてのdocumentに対してルールを設定していない場合、エラーになるのでしょうか?
anozon

2021/08/06 03:09

であれば問題ないと思います。DBコネクション作成時などではなく、パーミッションのない場所へのアクセス時に起こるはずです。 Missing or insufficient permissionsの他にエラーメッセージで対象のパスが表示されていた気がしますがどうですか?
ashe

2021/08/06 04:41

エラーメッセージを確認していたのですが、あまり手がかりになりそうな部分がなく、、 たとえばこちらなどから推測できる部分はありますでしょうか? at processTicksAndRejections (node:internal/process/task_queues:93:5) { code: 'permission-denied', toString: [Function (anonymous)] }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問