繁体   English   中英

如何使用 Swift 在 Firebase 中存储具有相同关键字的不同数据的多个实例?

[英]How can I store multiple instances of different data with the same keyword in Firebase using Swift?

我正在创建一个具有购物车系统的 iOS 应用程序。 我有一个用于选择项目的屏幕,然后一旦单击该项目,它就会进入一个用于选择数量的新屏幕。 将商品添加到购物车后,我想将其存储在 Firebase 中,以便当用户进入购物车时,可以从 Firebase 加载数据。 我尝试了以下方法:

@IBAction func addToCartButtonPressed(_ sender: UIButton) {
    let reference = Database.database().reference.child("UserCart").child(Auth.auth().currentUser.uid)
    reference.updateChildValues(["Item Name": itemName, "Item Price": itemPrice, "Item Quantity": itemQuantity])
    self.dismiss(animated: true, completion: nil)
}

当我这样做时,我没有实现我想要的,因为如果用户从订单视图 Controller 添加另一个项目,那么我刚刚写入 Firebase 的现有信息将被覆盖。 我知道这就是它的设计工作方式,所以我想知道是否有另一种方法可以写入 Firebase 并在 Firebase 中拥有itemNameitemPriceitemQuantity的多个实例。 我稍后计划读取这些数据并将其存储在一个数组中。 如果有帮助,我正在使用 Swift 5。谢谢!

您将需要阅读有关使用数据列表的文档。

要编写新项目,要做的事情是使用childByAutoId()append 写入数据列表

let reference = Database.database().reference
    .child("UserCart")
    .child(Auth.auth().currentUser.uid)
    .childByAutoId()

SDK 将生成一个唯一 ID,用作写入子节点的路径。 由于对childByAutoId()的每次调用都会生成一个唯一的 ID,因此每个新的孩子都将单独添加并且不会覆盖任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM