Запросы в Firebase ребенком ребенка
У меня есть структура объектов в Firebase, которая выглядит следующим образом:
-KBP27k4iOTT2m873xSE
categories
Geography: true
Oceania: true
correctanswer: "Yaren (de facto)"
languages: "English"
question: "Nauru"
questiontype: "Text"
wronganswer1: "Majuro"
wronganswer2: "Mata-Utu"
wronganswer3: "Suva"
Я пытаюсь найти объекты по категориям, поэтому, например, я хочу, чтобы все объекты, для которых установлена категория "Океания".
Я использую Swift, и я не могу понять концепцию запроса данных.
Мой запрос сейчас выглядит так:
ref.queryEqualToValue("", childKey: "categories").queryOrderedByChild("Oceania")
кудаref
является ссылкой на Firebase в этом конкретном пути.
Однако, что бы я ни пытался, я продолжаю возвращать ВСЕ данные вместо объектов только с категорией Океания.
Мои данные структурированы так:baseurl/questions/
Как вы можете видеть в примере объекта, к одному вопросу может быть добавлено несколько категорий, поэтому из того, что я понял, лучше всего иметь ссылку на категории внутри ваших объектов.
Я мог бы изменить свою структуру наbaseurl/questions/oceania/uniqueids/
, но тогда я бы получил несколько записей, охватывающих одни и те же данные, но с разнымиuniqueid
потому что вопрос будет присутствовать в обеих категорияхoceania
а такжеgeography
.
Используя структуруbaseurl/questions/oceania/
а такжеbaseurl/questions/geography
Я также мог бы просто добавитьunique ids
подoceania
а такжеgeography
это указывает на конкретныйunique id
внутриbaseurl/questions/uniqueids
вместо этого, но это означало бы, что мне придется отслеживать множество ссылок. Составление таблицы отношений, так сказать.
Интересно, так ли это? Должен ли я реструктурировать свои данные? Приложение еще не запущено, поэтому можно полностью реструктурировать данные без каких-либо более серьезных последствий, за исключением того, что мне пришлось бы переписать мой код, который передает данные в Firebase.
Дайте мне знать, если все это не имеет смысла, и извините за стену текста :-)