为嵌套数据添加.indexOn

时间:2016-02-02 04:56:13

标签: firebase

我收到firebase警告“使用未指定的索引。考虑在/ user / 544dceb6-98d-4f7e / clients添加”.indexOn“:”电子邮件“。

我添加的规则是:

{
  "rules": {
    "user": {
      "$clients": {
        ".indexOn": ["E-mail"]
      }
    }
  }
}

这是我正在制作的电话:

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

这就是我的数据结构:

database
+ user
  + 544dceb6-98d-4f7e...
      + clients
          + -K96sXIXRUIOK8....
              + E-mail

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

非常感谢!

1 个答案:

答案 0 :(得分:10)

您在rules.json中错过了一个关卡:

{
  "rules": {
    "user": {
      "$userid": {
        "clients": {
          ".indexOn": ["E-mail"]
        }
      }
    }
  }
}

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