2

Firebase セキュリティ チュートリアルに従っています。

私はこの単純な構造を持っています:

 - requests

     - request_id: {...}

     - request_id: {...}

     ...

そして私のセキュリティルール:

{
    "rules": {       
      "requests": {
        ".indexOn": ["id_company_owner", "id_app_user"],

        "$request_id": {
          // only request from the last ten minutes can be read
          ".read": "data.child('timestamp').val() > (now - 600000)",
        }
      }
    }
}

ルールで今欲しいのは、リクエストを読みやすくすることだけです。しかし、私はこれを $request_id の内側 (外側ではない) にしましたが、読み取り可能なリクエストはありません。リクエストのタイムスタンプが 10 分未満であっても。誰かが理由を説明できますか?

4

1 に答える 1

1

実際のデータを見ないとわかりませんが、Firebase のセキュリティ ルールはオールオアナッシングです。Firebase セキュリティ ルールはデータをフィルタリングしません。

つまり、リスナーを にアタッチしようとした場合/requests、セキュリティ ルールにより 1 つの項目でも読み取りが許可されていない場合、それらの項目はどれも読み取ることができません。この「フィルタリング」動作を実現するには、個々のアイテムをリッスンするか、データを再構築する必要があります。

于 2015-01-26T06:39:51.507 に答える