2016-01-06 2 views
0

Я пытаюсь запросить некоторые данные, которые, похоже, не могут получить звонок в самый раз.Справка по запросу Firebase - Double Nested

Вот пример кусок данных:

{ 
    "currentSelectedPlayers" : { 
     "player1" : { 
      "assists" : "97", 
      "currentlyPickedBy" : { 
       "userID" : "641aada9-2d42-4b83-9883-ca316c842a08" 
      }, 
      "goals" : "2", 
     } 
} 

В моих правилах я поставил:

"rules": { 
"$currentSelectedPlayers": { 
     ".indexOn": ["currentlyPickedBy", ".value"] 
     } 
} 

Мой запрос: https://{database-address}.firebaseio.com/currentSelectedPlayers.json?orderBy="$value"&equalTo="641aada9-2d42-4b83-9883-ca316c842a08"&print=pretty

Я знаю firebase недавно представила запрашивая для глубокого вложенные данные. Как правильно запросить эти вложенные данные?

ответ

2

Вам не нужно .value индекс, а индекс по пути ``:

{ 
    "currentSelectedPlayers": { 
    ".indexOn": ["currentlyPickedBy/userID"] 
    } 
} 

Вы можете запросить его:

currentSelectedPlayers.json?orderBy="currentlyPickedBy/userID"&equalTo="641aada9-2d42-4b83-9883-ca316c842a08"&print=pretty 

Дайте ему спину здесь: https://stackoverflow.firebaseio.com/34644066/currentSelectedPlayers.json?orderBy=%22currentlyPickedBy/userID%22&equalTo=%22641aada9-2d42-4b83-9883-ca316c842a08%22&print=pretty

+0

Я отметил правильный ответ, спасибо. Что, если вместо ["currentPickedBy/userID"] у меня было что-то вроде ["currentPickedBy/{someUserID}"], где someUserID был динамическим и был установлен в true. например "currentlyPickedBy": { "641aada9-2d42-4b83-9883-ca316c842a08": правда, "867aada9-2d42-4b83-9883-ca316c842a08": правда } – mopineyro

+0

Это не возможно с глубоким пути выполнения запросов, так как для этого требуется указать путь в '.indexOn'. Но если вы вложенные списки, вы, вероятно, должны денормализовать их в списки верхнего уровня. См. Этот раздел в документах по вложенности: https://www.firebase.com/docs/web/guide/structuring-data.html#section-nested –

Смежные вопросы