我有一些简单的应用程序,里面有机器零配件,我有一个购物车,我想用户把需要的零件添加到他的购物车里,但是如果它的零件已经在购物车里了,它需要将基本计数改为+1。
这是我的防火结构:
func addToFirebaseWatchList(object: ObjectFromPartsCatalogueList, user: FirebaseAuth.User){
self.ref.child("users").child(user.uid).updateChildValues(["userEmail": "\(user.email!)"])
self.ref.child("users").child(user.uid).child("order").child("\(object.objectFromPartsCatalogueListCode!)").updateChildValues(["count" : "1"])
}
如何检查购物车是否已经包含具有相同号码的备件,并简单地更新计数?
发布于 2021-08-31 19:51:07
如果节点的新值取决于其现有值,则可以使用使用事务或执行原子增量。在这里,我建议使用原子增量,但这确实意味着您必须将计数存储为一个数值(当前将它作为一个字符串存储)。
将其存储为数值后,增加它就像:
self.ref.child("users").child(user.uid).child("order")
.child("\(object.objectFromPartsCatalogueListCode!)")
.updateChildValues(["count" :ServerValue.increment(1) ])
如果该属性还不存在,则上面的属性将设置为1
__。但是如果你已经有了一个非数字的值,它就不能工作。因此,只要您愿意删除现有的字符串count
值,就应该是好的。
实际上,我会去掉其中的"count"
属性,只需:
self.ref.child("users").child(user.uid).child("order")
.child("\(object.objectFromPartsCatalogueListCode!)")
.setValue(ServerValue.increment(1))
https://stackoverflow.com/questions/69004295
复制相似问题