iOS Firebase 获取值等于某物的数据

Posted

技术标签:

【中文标题】iOS Firebase 获取值等于某物的数据【英文标题】:iOS Firebase get data where value equals to something 【发布时间】:2017-11-13 21:32:42 【问题描述】:

如何从值等于某个值的 firebase 获取 swift3 中的数据。

mysql 中,"SELECT * FROM users WHERE type = 'brown'"; 如何在 Firebase 中编写 where 部分?

我有这个数据库

我想从中获取所有数据,其中month == currentMonth(我有一个currentMonth 变量)

【问题讨论】:

【参考方案1】:

你可以这样Query

let ref = Database.database().reference()
ref.child("Budget")
    .queryOrdered(byChild: "Month")
    .queryEqual(toValue: "November")
    .observe(.value, with:  (snapshot: DataSnapshot) in

        var array:[Budget] = []

        for budgetChild in snapshot.children 
            let budgetSnapshot = budgetChild as! DataSnapshot
            let budgetDictionary = budgetSnapshot.value as! [String:String]

            let budget: Budget = Budget()
            budget.description_ = budgetDictionary["Description"]
            budget.month = budgetDictionary["Month"]
            budget.type = budgetDictionary["Type"]
            budget.value = budgetDictionary["Value"]

            array.append(budget)
        
    )

【讨论】:

【参考方案2】:

据我所知,firebase 实时数据库不支持这样的查询。相反,您需要调用整个参考“预算”,然后在您的应用程序中进行本地过滤。

FireStore 显然具有更好的查询支持,尽管它处于测试阶段。

【讨论】:

以上是关于iOS Firebase 获取值等于某物的数据的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Swift 5 (iOS) 从 Firebase 数据库中获取和打印单个值

JSR 303 验证,如果一个字段等于“某物”,则这些其他字段不应为空

Firebase 获取数据

如何基于多个等于 [重复] 查询 Firebase

Swift/iOS - Firebase 远程配置获取值永远不会完成

如何按文档 ID 从 Firebase Firestore 获取数据 - iOS?