【发布时间】:2016-05-08 21:21:41
【问题描述】:
我在 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 结构,我还可以在oceania 和geography 下添加unique ids,它指向baseurl/questions/uniqueids 内的特定unique id,但这意味着我' d 必须跟踪很多参考资料。可以说是制作关系表。
我想知道这是要走的路还是?我应该重组我的数据吗?该应用程序尚未投入生产,因此可以完全重构数据而不会产生更大的后果,除了我必须重写将数据推送到 Firebase 的代码。
如果所有这些都没有意义,请告诉我,并为文字墙感到抱歉:-)
【问题讨论】: