如何在Swift中过滤Firebase数据?

And*_*ira 10 ios firebase swift firebase-realtime-database

基本上,我有一个叫结构,它包含的话题Title,DescriptionPublished标志(见下面的截图澄清).

Firebase数据库中的主题对象

在应用程序中,我想过滤数据并仅显示具有的主题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
        })
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我该怎么做呢?在此先感谢您的帮助.

Fra*_*len 25

那里有一些小错误.总的来说没什么不好,但结合起来他们永远不会工作:

  1. 调用任何query...方法都会返回一个新对象
  2. 你需要orderByChild()先过滤它的价值
  3. 你需要循环结果

结合这些:

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)
    }
})
Run Code Online (Sandbox Code Playgroud)

我们定期收到这个问题.例如,昨天看起来非常相似:Firebase查询没有正确执行.由于我的解释因每个答案而异,我建议浏览一下以阅读我的相关答案,直到它点击为止.