【发布时间】:2020-05-09 22:08:54
【问题描述】:
我正在创建一个订单系统,为此,我将用户的购物车与地图一起存储在 Firestore 中,因此该集合将被称为“购物车”,然后文档将保存为用户的 UID 并保存在文件应该有地图,上面有他订购的东西、这些东西的数量和价格,例如,他订购了 4 件东西,为此有 4 张地图,其中有物品名称、数量和存储的价格。
现在我不知道如何在 Swift 中从 Firebase 检索这些数据并将其保存在字典中。对于其他数据类型,我总是使用 SnapshotListener,但我真的不知道这对于我想保存在字典中的地图中的数据如何工作。
编辑: 我的 firebase 结构是这样的,我想将这些数据(项目名称、数量、价格)保存在 Swift 的一个字典中,以便我可以将这些信息作为一个传递。
编辑 2:
class readDrinksFromDb: ObservableObject {
@Published var items = [Item]()
@ObservedObject var userInfo = UserData()
init () {
let db = Firestore.firestore()
let itemsRef = db.collection("drinks")
let loungeRef = itemsRef.document(userInfo.user.reserviert) // Should get the lounge Name -> XYZ Lounge
loungeRef.getDocument { (snap, err) in
if let err = err {
print(err.localizedDescription)
return
}
guard let snap = snap else { return }
guard let dict = snap.data() else { return }
dict.forEach { i in
let orderItems = dict[i.key] as! [String: String]
let id = orderItems["id"] ?? ""
let price = orderItems["price"] ?? ""
let pic = orderItems["pic"] ?? ""
let name = orderItems["name"] ?? ""
self.items.append(Item(id: id, name: name, price: price, pic: pic, lounge: "Rebell Lounge", type: "drinks"))
}
print(self.items)
}
}
}
【问题讨论】:
-
描述问题是一个好的开始,但我们确实需要了解您的 firebase 结构以及您尝试过的代码。有点不清楚实际问题是什么 - 从 Firestore 读取数据已包含在入门指南中,因此这是一个很好的参考点。
-
@Jay 编辑了我的 firebase 结构,希望对您有所帮助。谢谢你:)
标签: swift firebase dictionary google-cloud-firestore