如何过滤Swift中的Firebase数据?
基本上,我有一个称为主题的结构,其中包含Title
, Description
和已Published
标志(请参阅下面的屏幕截图以进行说明)。
在应用程序中,我想过滤数据,只显示已published = true
的主题published = true
。
这就是我想要做的:
self.ref = FIRDatabase.database().referenceFromURL(FIREBASE_URL).child("topics") self.ref?.queryEqualToValue("published") self.ref?.observeEventType(.Value, withBlock: { (snapshot) in //...Handle Snapshot here })
但是这不起作用。 我应该如何处理这个? 先谢谢您的帮助。
那里有一些小错误。 总的来说没有什么不好,但总的来说,
- 调用任何
query...
方法返回一个新的对象 - 你需要
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查询不正确执行 。 由于我的解释随着每个答案而变化,所以我build议浏览一下阅读我的相关答案,直到它被点击。
self.ref = FIRDatabase.database().referenceFromURL(FIREBASE_URL).child("topics"). queryOrderedByChild("published").queryEqualToValue(true) .observeEventType(.Value, withBlock: { (snapshot) in for childSnapshot in snapshot.children { print(snapshot) } })