Consulta no Firebase por filho de filho

Eu tenho uma estrutura de objetos no Firebase parecida com esta:

-KBP27k4iOTT2m873xSE
    categories
        Geography: true
        Oceania: true
    correctanswer: "Yaren (de facto)"
    languages: "English"
    question: "Nauru"
    questiontype: "Text"
    wronganswer1: "Majuro"
    wronganswer2: "Mata-Utu"
    wronganswer3: "Suva"

Estou tentando encontrar objetos por categorias, por exemplo, quero todos os objetos com a categoria definida como "Oceania".

Estou usando o Swift e não consigo entender o conceito de como consultar os dados.

Minha consulta agora se parece com isso:

ref.queryEqualToValue("", childKey: "categories").queryOrderedByChild("Oceania")

Onderef é a referência ao Firebase nesse caminho específico.

No entanto, o que quer que eu tenha tentado, continuo recebendo TODOS os dados retornados, em vez dos objetos da categoria Oceania.

Meus dados estão estruturados da seguinte maneira:baseurl/questions/

Como você pode ver no exemplo de objeto, uma pergunta pode ter várias categorias adicionadas. Portanto, pelo que entendi, é melhor ter uma referência às categorias dentro de seus objetos.

Eu poderia mudar minha estrutura parabaseurl/questions/oceania/uniqueids/, mas obteria várias entradas cobrindo os mesmos dados, mas com diferentesuniqueid, porque a pergunta estaria presente nas duas categoriasoceania egeography.

Usando a estruturabaseurl/questions/oceania/ ebaseurl/questions/geography Eu também poderia apenas adicionarunique ids soboceania egeography que aponta para um específicounique id dentrobaseurl/questions/uniqueids em vez disso, mas isso significaria que eu teria que acompanhar muitas referências. Fazendo uma tabela de relações, por assim dizer.

Gostaria de saber se esse é o caminho a seguir ou? Devo reestruturar meus dados? O aplicativo ainda não está em produção, por isso é possível reestruturar completamente os dados sem maiores consequências, além de eu ter que reescrever meu código, que envia os dados para o Firebase.

Deixe-me saber, se tudo isso não faz sentido e desculpe pela parede do texto :-)

questionAnswers(2)

yourAnswerToTheQuestion