Firestore ルールは、ネストされたコレクションを持つチャット アプリケーションへのすべてのリクエストを拒否します。私が何を間違えたのでしょうか?
P粉627136450
P粉627136450 2023-09-08 15:04:01
0
1
534

現在チャット アプリを構築しているのですが、Firebase ルールで問題が発生しています。ユーザーが参加していない会話を閲覧できないようにしたいと考えています。ただし、これらのルールを実装しようとすると、会話が存在するかどうかを確認した後でもアクセスが拒否されるようです。ユーザーがデータベース内のすべての会話ではなく、自分が参加している会話のみを表示できるように Firebase ルールを適切に構成するにはどうすればよいですか?

これは、会話のみに実装しようとしているルールセットです。

リーリー

アクセスは「トップレベル」で拒否されました。これは次の部分です:

リーリー

これは、これらの入れ子になった会話の仕組みに関係があると思いますが、何を変更する必要があるのか​​わかりません。 Google Firebaseのドキュメントでこれについて読んでみましたが、これに関連するものは見つかりませんでした。 これを修正する方法があれば、ぜひお知らせください。ありがとう!

複数の「ルールセット」で動作させることを試してみました。常にexists()関数で失敗します。

これも試してみましたが、どちらもうまくいかないようです:

リーリー

これは私が Vue.js で使用するクエリです:

ああああ

P粉627136450
P粉627136450

全員に返信(1)
P粉459578805

この失敗の原因となった実行中のクエリを共有していませんが、 Firestore ルールはフィルターではないことを覚えておくことが重要です

クエリが次のような場合:

リーリー

Firestore がルールが true と評価された会話のみを返すことを期待している場合、これは機能しません。 Firestore は、 一部の 会話ドキュメント true と評価されず、 クエリ全体が失敗することを検出します

ルールを評価させるために実行するクエリが、ルールが true と評価される会話のみを参照することを確認する必要があります。例:

リーリー

公式の

Firestore ルール ドキュメント .中了解更多信息> を確認できます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート