我正在尝试保存用户订购的商品,并在另一端获取信息,但是在检索数据时,它似乎不再是字典,并且无法从订单中访问商品。
这就是我用来保存数据的
for (i,item) in currentOrder.enumerated().reversed(){
restaurantRef.child("order").child("dish\(i+1)").updateChildValues([
"dishName": item.name,
"dishPrice": item.price,
"dishQuantity": item.quantity,
"servWFood": item.servWithFood
])
} 这是正在发送的内容的print():
["dishName": "Baked Ricotta and Pancetta Tarts", "servWFood": false, "dishQuantity": 1, "dishPrice": 18.0]
["dishName": "Water", "servWFood": false, "dishQuantity": 1, "dishPrice": 10.0]
,以及数据库发送数据后的外观: Database img
这就是我用来检索数据的内容:
let ref = Database.database().reference().child("Restaurants").child(restaurantUid).child("Tables")
ref.observe(.childChanged) { (snapshot) in
if let dictionary = snapshot.value as? [String:AnyObject]{
if let orders = dictionary["order"] as? NSDictionary{
for item in orders{
print("item \(item)")
}
}
}
,item的值为:
item (key: "dish3", value: {
dishName = "Steak and Tomato Panzanella";
dishPrice = 25;
dishQuantity = 1;
servWFood = 0;
})
我想获得这4种菜肴信息中的每一种,但一直没能做到。
我将不胜感激!谢谢:)
答案 0 :(得分:0)
尝试此操作以获取“ RestTable1”的订单:
let ref = Database.database().reference().child("Restaurants").child(restaurantUid).child("Tables").child("RestTable1").child("order")
ref.observe(.value) { (snapshot) in
if let orderChildSnapshots = snapshot.children.allObjects as! [DataSnapshot] {
for dish in orderChildSnapshots {
print("dish: \(dish.key)")
ref.child(dish.key).observeSingleEvent(of: .value) { (dishSnapshot) in
if let dict = dishSnapshot.value as? [String: AnyObject] {
let name = dict["dishName"] as? String
let price = dict["dishPrice"] as? Int
print("dishName: \(name)")
print("dishPrice: \(price)")
}
}
}
}
}
答案 1 :(得分:0)
很明显,我在到达订单中的商品之后只想再少一层。
if let orders = dictionary["order"] as? [String:AnyObject]{
for items in orders{
if let item = orders[items.key] as? [String:AnyObject]{
let dishName = item["dishName"] as? String
let dishPrice = item["dishPrice"] as? Double
let dishQuantity = item["dishQuantity"] as? Int
let servWFood = item["servWFood"] as? Bool
print("dishName \(dishName), dishPrice: \(dishPrice), dishQuantity: \(dishQuantity), servWFood: \(servWFood)")
}
}
}