ios – 如何在Swift中过滤Firebase数据?

基本上,我有一个称为主题的结构,其中包含标题,描述和已发布的标志(请参阅下面的屏幕截图以进行说明).

在应用程序中,我想过滤数据并仅显示已发布= 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直到它点击.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...