我使用Firebase For My Store App。我想通过为用户提供产品名称来查找产品详细信息。我的JSON格式如下所示:
{
product :
electronic =
a = {
pname = "iphone 5"
pprice = "20000"
pdescription = "Details....." }
b = {
pname = "iphone 6"
pprice = "30000"
pdescription = "Details....." }
}
cloths =
a = pname = "shirt"
pprice = "200"
pdescription = "Details....." }
b = {
pname = "pents"
pprice = "300"
pdescription = "Details....." }
}
现在,假设我的名字为iphone 5
,那么我该如何找到该产品的其他细节呢?
答案 0 :(得分:0)
import Firebase
FIRApp.configure()
ref = FIRDatabase.database().reference()
let prod_query = "iphone 5"
ref.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
let product_enum = snapshot.children
while let product = product_enum.nextObject() as? FDataSnapshot {
product.queryEqualToValue(child:"\(prod_query)").observeSingleEventOfType(.Value, withBlock: { (snap) in
let pid = snap.key as! String
let pprice = snap.value!["pprice"] as! Int
let pdescription = snap.value!["pdescription"] as! String
})
}
})
这意味着您知道产品信件是什么,以便您可以提取正确的名称,价格和描述。
while循环将遍历不同类型的产品(电子产品,衣服等)并执行查询,搜索包含您正在寻找pname
的孩子的产品ID。
Firebase建议不要使用.Value
,而是使用.ChildAdded
,因为它在管理添加的新对象时实现了相同的目标。但是,由于您似乎正在尝试查看静态数据,.Value
可以正常工作。
这应该是如何使用Firebase检索数据的一个很好的示例。但是,如果您有其他问题,我建议您自checking documentation nodejs site。
虽然我真的不介意查看这些信息......但是为了更好地理解代码而使用此网站,而不是作为个人助理的集合存在。
在您的问题中展示研究工作可以有很长的路要走。
答案 1 :(得分:0)
试试这个: -
FIRDatabase.database().reference().child("product/electronic").queryOrderedByChild("pname").queryEqualToValue("iphone 5").observeSingleEventOfType(.Value , withBlock : {(snap) in
if let snapDict = snap.value as? [String:AnyObject]{
for each in snapDict{
print(each.0) // product key
print(each.1) //product details
}
}
})