ios - 从 Firebase 快照保存/检索数据

标签 ios swift firebase firebase-realtime-database

我正在尝试保存用户订购的商品并在另一端获取信息,但是在检索数据时它似乎不再是字典,并且我无法从订单中访问商品。

这就是我用来保存数据的

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 (key: "dish3", value: {
    dishName = "Steak and Tomato Panzanella";
    dishPrice = 25;
    dishQuantity = 1;
    servWFood = 0;
})

我想获取这 4 道菜的每一项信息,但一直没能做到。

如果有任何帮助,我将不胜感激!谢谢:)

最佳答案

尝试获取“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)")
                }
            }
        }
    }
}

关于ios - 从 Firebase 快照保存/检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298045/

相关文章:

ios - 为什么我在 IOS 上得到 Mapboxgl api 的空白页?

ios - Swift 3 转换错误/NSError

ios - UICollectionViewCell 中的 UICollectionView 滚动缓慢/滞后

ios - CoreBluetooth 状态保存 : correct way to restore CBCentralManager

swift - 无法关闭 View Controller

ios - swift:如何创建 UIPageViewController?

swift - 是否可以将通用函数分配给变量?

android - 如何使用 FirebaseListAdapter 填充 ListView?

android - 如何在 FirebaseAnalytics for Unity3D 中设置 userId?

java - 将 userId 与 Firebase 中的唯一照片连接起来