为嵌套数据添加.indexOn

kma*_*ill 4 firebase

我正在获取firebase警告"使用未指定的索引.考虑在/ user/544dceb6-98d-4f7e/clients添加".indexOn":"电子邮件".

我添加的规则是:

{
  "rules": {
    "user": {
      "$clients": {
        ".indexOn": ["E-mail"]
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我正在制作的电话:

firebaseRef.child(authData.uid + "/clients").orderByChild("E-mail").equalTo(this.props.params.clientId).on('value', function(clientSnapshot) { ... }
Run Code Online (Sandbox Code Playgroud)

这就是我的数据结构:

database
+ user
  + 544dceb6-98d-4f7e...
      + clients
          + -K96sXIXRUIOK8....
              + E-mail
Run Code Online (Sandbox Code Playgroud)

我怀疑这个问题与两层密钥有关,但无法找到解决方案.

非常感谢!

Fra*_*len 10

你在rules.json中缺少一个级别:

{
  "rules": {
    "user": {
      "$userid": {
        "clients": {
          ".indexOn": ["E-mail"]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

旁注:你在树中有user(单数)和clients(复数)有点令人困惑.使它们保持一致有助于使您的数据结构更易于理解.