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

Pab*_*che 3 firebase firebase-security firebase-realtime-database

这是我的问题:

WARN: FIREBASE WARNING: Using an unspecified index. Consider adding ".indexOn": "id_logement" at /images/-KNx2y3mAkJZ-Poa7R03 to your security rules for better performance 
Run Code Online (Sandbox Code Playgroud)

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

这是我的数据结构:
在此输入图像描述

这是我的规则!

{
  "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"]
    }



  }
}
Run Code Online (Sandbox Code Playgroud)



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

ado*_*srs 5

回答您的问题您要在规则中使用的$id是表示分支键的通配符.

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",
    ...
    "images": {
        "$imageId1": {
           ".indexOn": "id_logement"
        }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,请记住,您不应该将imagesUrl内部存储在两级深度密钥中.使用代码来images/imageUniqueKey/imageData代替结构images/imageUniqueKey1/imageUniqueKey2/imageData.然后你会有你的规则如下.

"images": {
    ".indexOn": "id_logement"       
}
Run Code Online (Sandbox Code Playgroud)