Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase监听喜好数量的变化,并将其显示在屏幕上_Ios_Swift_Firebase - Fatal编程技术网

Ios Firebase监听喜好数量的变化,并将其显示在屏幕上

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

当用户双击图像时,每个帖子的赞数(心)都会增加。 我尝试了这段代码,但它没有按预期工作(例如,当我双击时,它将加载一篇文章,并用不同的喜欢数复制它(例如,post 1-1like,post 1-2like,post 1-3like)。如何在不复制文章的情况下显示更新的喜欢数?(post 1-显示X个喜欢数,其中X=增量)

要检测另一个文件中的心跳信号,请执行以下操作:

@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?()
}
}