Ios Firebase监听喜好数量的变化,并将其显示在屏幕上
当用户双击图像时,每个帖子的赞数(心)都会增加。 我尝试了这段代码,但它没有按预期工作(例如,当我双击时,它将加载一篇文章,并用不同的喜欢数复制它(例如,post 1-1like,post 1-2like,post 1-3like)。如何在不复制文章的情况下显示更新的喜欢数?(post 1-显示X个喜欢数,其中X=增量) 要检测另一个文件中的心跳信号,请执行以下操作:Ios Firebase监听喜好数量的变化,并将其显示在屏幕上,ios,swift,firebase,Ios,Swift,Firebase,当用户双击图像时,每个帖子的赞数(心)都会增加。 我尝试了这段代码,但它没有按预期工作(例如,当我双击时,它将加载一篇文章,并用不同的喜欢数复制它(例如,post 1-1like,post 1-2like,post 1-3like)。如何在不复制文章的情况下显示更新的喜欢数?(post 1-显示X个喜欢数,其中X=增量) 要检测另一个文件中的心跳信号,请执行以下操作: @objc func heartTapped(){ print(" I heart u") le
@objc func heartTapped(){
print(" I heart u")
let ref = Database.database().reference()
heartInt1 += 1
ref.child("posts").child(timestamp).observeSingleEvent(of: .value, with: { (snapshot) in
if let dic = snapshot.value as? [String : AnyObject]{
var heartString = dic["heart"] as! Int
heartString += 1
ref.child("posts").child(self.timestamp).updateChildValues(["heart" : heartString])
}
})
reloadEvents?()
}
}
我真傻,我应该在loadPosts()中添加self.posts.removeAll()
已解决。您的解决方案是一个糟糕的做法。当您处理数据库时,您必须进行大规模思考,如果每秒都有一颗心的Kim Kardashian使用您的应用程序,那么会发生什么,为每个心加载并删除所有内容?这听起来有效吗 你需要找到一种方法,只加载心脏的数量,而不是全部,以获得心脏的数量 一个解决方案是添加一个额外的子项
ref.child(“hearts”)
,然后创建一个loadHearts()
,在那里您将只获得心脏的数量
@objc func heartTapped(){
print(" I heart u")
let ref = Database.database().reference()
heartInt1 += 1
ref.child("posts").child(timestamp).observeSingleEvent(of: .value, with: { (snapshot) in
if let dic = snapshot.value as? [String : AnyObject]{
var heartString = dic["heart"] as! Int
heartString += 1
ref.child("posts").child(self.timestamp).updateChildValues(["heart" : heartString])
}
})
reloadEvents?()
}
}