ホームページ  >  に質問  >  本文

Firestore ルールは、ネストされたコレクションを持つチャット アプリケーションへのすべてのリクエストを拒否します。私が何を間違えたのでしょうか?

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

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

リーリー

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

リーリー

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

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

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

リーリー

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

ああああ

P粉627136450P粉627136450407日前501

全員に返信(1)返信します

  • P粉459578805

    P粉4595788052023-09-09 14:03:04

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

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

    リーリー

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

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

    リーリー

    公式の

    Firestore ルール ドキュメント . を確認できます。

    返事
    0
  • キャンセル返事