基本上,我有一个称为主题的结构,其中包含标题,描述和已发布的标志(请参阅下面的屏幕截图以进行说明).
在应用程序中,我想过滤数据并仅显示已发布= true的主题.
这就是我想要做的:
self.ref = FIRDatabase.database().referenceFromURL(FIREBASE_URL).child("topics") self.ref?.queryEqualToValue("published") self.ref?.observeEventType(.Value,withBlock: { (snapshot) in //...Handle Snapshot here })
但这不起作用.我该怎么办呢?在此先感谢您的帮助.
解决方法
那里有一些小错误.总的来说没什么不好,但结合起来他们永远不会工作:
>调用任何查询…方法返回一个新对象
>您需要先orderByChild()才能过滤其值
>你需要循环结果
结合这些:
let ref = FIRDatabase.database().referenceFromURL(FIREBASE_URL).child("topics") let query = ref.queryOrderedByChild("published").queryEqualToValue(true) query.observeEventType(.Value,withBlock: { (snapshot) in for childSnapshot in snapshot.children { print(childSnapshot) } })
我们定期收到这个问题.例如,昨天的这个看起来非常相似:Firebase Query not Executing Properly.由于我的解释因每个答案而异,我建议浏览一下以阅读我的relevant answers直到它点击.