如何为firebase中的嵌套值编写.indexOn?

如何为firebase中的嵌套值编写.indexOn?,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我已经写了下面的规则,用createdAt键从聊天中获取值,但是我无法从Firebase DB中获取值。规则如下 "chats": { ".read" : true, ".write" : "auth !== null", "messages" : { ".indexOn": ["userName", "createdAt", "userId"] } }, chats/messages.json?orderBy=“createdAt”

我已经写了下面的规则,用createdAt键从聊天中获取值,但是我无法从Firebase DB中获取值。规则如下

"chats": {
  ".read" : true,
  ".write" : "auth !== null",
      "messages" : {
            ".indexOn": ["userName", "createdAt", "userId"]
        }
},

chats/messages.json?orderBy=“createdAt”&startAt=1485920224250&print=pretty

您的规则中缺少一个级别:

"chats": {
  ".read" : true,
  ".write" : "auth !== null",
  "$chatId": {
      "messages" : {
            ".indexOn": ["userName", "createdAt", "userId"]
        }
  }
},

您的规则中缺少一个级别:

"chats": {
  ".read" : true,
  ".write" : "auth !== null",
  "$chatId": {
      "messages" : {
            ".indexOn": ["userName", "createdAt", "userId"]
        }
  }
},

你能编辑一下你原来的帖子来澄清你的问题吗?你的标题说你想写一个规则来索引Firebase中的嵌套值,但在你的文章后面你说你无法获取值。如果您不从Firebase返回数据,则会出现其他问题。我已经为聊天/消息编写了规则。json?orderBy=“createdAt”&startAt=1485920224250&print=pretty,但Firebase不会返回任何内容,请告知我需要在Firebase中添加哪些规则。请编辑您的原始帖子以澄清您的问题?你的标题说你想写一个规则来索引Firebase中的嵌套值,但在你的文章后面你说你无法获取值。如果您没有从Firebase返回数据,则会出现其他问题。我已经为聊天/消息编写了规则。json?orderBy=“createdAt”&startAt=1485920224250&print=pretty,但Firebase不会返回任何内容,请告知我需要在Firebase中添加哪些规则我尝试了您的解决方案,但它会引发一些错误{“error”:“未定义索引,请将路径\“/chats/messages\”的\“.indexOn\”:\“createdAt\”添加到规则“}是的,我现在明白了,你正试图根据聊天室中消息的时间戳来获取聊天室。这是行不通的。如果你想按照聊天室上次更新的时间顺序获取聊天室,你必须在聊天室上有一个属性,指明上次更新的时间。@FrankvanPuffelen,那么对聊天室和消息进行索引又如何呢?我知道我尝试了您的解决方案,但它抛出了一些错误{“error”:“未定义索引,添加\”“.indexOn\”:\“createdAt\”,对于路径\“/chats/messages\”,将其添加到规则“}是的,我现在明白了,你正试图根据聊天室中消息的时间戳来获取聊天室。这是行不通的。如果你想按照聊天室上次更新的时间顺序获取聊天室,你必须在聊天室上有一个属性,指示聊天室上次更新的时间。@FrankvanPuffelen,那么对聊天室和消息进行索引又如何呢?