首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Firebase中侦听和检查特定元素的值?

如何在Firebase中侦听和检查特定元素的值?
EN

Stack Overflow用户
提问于 2021-08-31 19:21:24
回答 1查看 46关注 0票数 0

我有一些简单的应用程序,里面有机器零配件,我有一个购物车,我想用户把需要的零件添加到他的购物车里,但是如果它的零件已经在购物车里了,它需要将基本计数改为+1。

这是我的防火结构:

代码语言:javascript
运行
复制
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"])
}

如何检查购物车是否已经包含具有相同号码的备件,并简单地更新计数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-31 19:51:07

如果节点的新值取决于其现有值,则可以使用使用事务执行原子增量。在这里,我建议使用原子增量,但这确实意味着您必须将计数存储为一个数值(当前将它作为一个字符串存储)。

将其存储为数值后,增加它就像:

代码语言:javascript
运行
复制
self.ref.child("users").child(user.uid).child("order")
  .child("\(object.objectFromPartsCatalogueListCode!)")
  .updateChildValues(["count" :ServerValue.increment(1) ])

如果该属性还不存在,则上面的属性将设置为1__。但是如果你已经有了一个非数字的值,它就不能工作。因此,只要您愿意删除现有的字符串count值,就应该是好的。

实际上,我会去掉其中的"count"属性,只需:

代码语言:javascript
运行
复制
self.ref.child("users").child(user.uid).child("order")
  .child("\(object.objectFromPartsCatalogueListCode!)")
  .setValue(ServerValue.increment(1))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69004295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档