5

私のFirebaseセキュリティルールでは、匿名ユーザーが1つのフィールド(secret_field)以外のものを読み取れるようにしたいと考えています。

{
  "rules": {
    ".read": true,
    ".write": "auth != null",
    "stuff" : {
      "$stuffID" : {
        "secret_field" : {
           ".read" : "auth != null"
        }
      }
    }
  }
}

ただし、Firebaseでは、trueと評価される途中の読み取りルールがあるsecret_field場合、読み取りアクセスsecret fieldが許可されます。

その動作を元に戻す方法はありますか?secret_field( falseと評価される途中の読み取りルールがある場合は、読み取りアクセスを禁止します)

4

1 に答える 1

10

動作を元に戻すことはできませんが、パブリックフィールドに「コンテナ」を導入し、.readをtrueに設定することで、これを解決できます。例えば:

{
  "rules": {
    "stuff" : {
      "$stuffID" : {
        "public" : {
          ".read": true
        },
        "secret_field" : {
          ".read" : "auth != null"
        }
      }
    }
  }
}

そして、... / public /の下にあるものはすべて誰でもアクセスできますが、.../secret_fieldは認証されたユーザーのみがアクセスできます。

于 2013-01-30T03:19:04.473 に答える