如何使用唯一ID编写firebase规则

时间:2016-07-30 18:34:42

标签: firebase firebase-realtime-database firebase-security

这是我的问题:

WARN: FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "id_logement" at /images/-KNx2y3mAkJZ-Poa7R03 to your security rules for better performance 

我不是真正的firebase和规则的高手所以它对我来说并不是真正的意义......但我知道有一个问题!

这是我的数据结构:
enter image description here

这是我的规则!

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
    "accounts" : {
      ".read": true,
        ".write": true,
        ".indexOn": ["userId", "email", "lat",]
    },
     "geofire" : {
      ".read": true,
        ".write": true,
        ".indexOn": ["g"]
    },
      "logements" : {
      ".read": true,
        ".write": true,
        ".indexOn": ["id_account"]
    }



  }
}



我认为这是因为我不知道如何在规则中编写这个唯一ID!你能帮帮我吗?谢谢

1 个答案:

答案 0 :(得分:5)

回答您的问题,您希望在规则中使用的是$id符号,它是表示分支键的通配符。

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
    ...
    "images": {
        "$imageId1": {
           ".indexOn": "id_logement"
        }
    }
  }
}

但是,请记住,您不应该将imagesUrl存储在两级深度密钥中。将代码设置为images/imageUniqueKey/imageData结构而不是images/imageUniqueKey1/imageUniqueKey2/imageData。那么你的规则如下所示。

"images": {
    ".indexOn": "id_logement"       
}