我有一个应用程序,它有主题和类别,一个类别可能属于一个或多个主题,我试图过滤数据只显示具有标记为true的某个主题ID的类别,这是结构:
这是我提出的代码(正在使用Swift 2.3):
self.ref = FIRDatabase.database().reference(fromURL: FIREBASE_URL).child("categories")
let query = ref?.queryOrdered(byChild: "topics/idt2").queryEqual(toValue: true)
query!.observe(.value, with: { (snapshot) in
//This should bring back both categories, Soccer and Moon
print("Inside query \(snapshot.value)") // Prints null
})
有什么想法吗?
答案 0 :(得分:3)
对Firebase数据库执行查询时,可能会有多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您需要在回调块中处理此列表:
query!.observe(.value, with: { (snapshot) in
for child in snapshot.children {
print(child.key)
}
})
另见: