首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Firebase监听点赞数量的变化并在屏幕上显示

Firebase监听点赞数量的变化并在屏幕上显示
EN

Stack Overflow用户
提问于 2018-06-27 19:59:05
回答 2查看 48关注 0票数 0

当用户在图片上双击时,每个帖子的点赞(心)数将会增加。我尝试了这个代码,但它不能像预期的那样工作(例如,当我双击时,它会加载一个帖子并复制不同点赞数量的帖子(例如帖子1- 1个赞,帖子1-2个赞,帖子1-3个赞).How我是否可以在不复制帖子的情况下显示更新的点赞数?(帖子1-显示X个赞的位置X=Incremental)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
func loadPosts() {
let ref = Database.database().reference()
ref.child("posts").observe(.childAdded) { (snapshot: DataSnapshot) in
    if  let dict = snapshot.value as? [String: Any] {
        guard let titleText = dict["title"] as? String else{return}
        let locationDetails = dict["location"] as! String
        let captionText = dict["caption"] as! String
        let photoUrlString = dict["photoUrl"] as! String
        let priceText = dict["price"] as! String
        let categoryText = dict["category"] as! String
        let usernameLabel = dict["username"] as! String
        let profileImageURL = dict["pic"] as! String
        let heartInt = dict["heart"] as! Int
        let timestampString = dict["timestamp"] as! String
        let post = Post(titleText: titleText, captionText: captionText, locationDetails: locationDetails, photoUrlString: photoUrlString, priceText: priceText,categoryText: categoryText, usernameLabel: usernameLabel, profileImageURL: profileImageURL, heartInt: heartInt, timestampString: timestampString)
        //append(post) to array
        self.posts.append(post)
        print(self.posts)
        self.collectionView.reloadData()

    }
}
}

func delayCompletionHandler(completion:@escaping (() -> ())) {
    let delayInSeconds = 0.5
    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + delayInSeconds) {
        completion()
    }
}
//CollectionView
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
 cell.reloadEvents = {
    self.delayCompletionHandler {
    self.loadPosts()
    }
}
}

要检测另一个文件中的heartTapped,请执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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?()
}
}
EN

回答 2

Stack Overflow用户

发布于 2018-06-27 20:19:09

我真傻,我应该在解析的loadPosts()中添加self.posts.removeAll()。

票数 0
EN

Stack Overflow用户

发布于 2018-06-28 02:32:27

你的解决方案是糟糕的实践。当你处理数据库时,你必须从规模上考虑,如果Kim Kardashian每秒都能得到一颗心,使用你的应用程序,那么会发生什么,加载和删除每颗心的所有东西?这听起来很有效吗?

您需要找到一种方法,只加载心形的数量,而不是所有的,以便获得心形的数量。

一种解决方案是添加一个额外的子ref.child("hearts"),然后拥有一个loadHearts(),其中您将只获得心脏的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51070511

复制
相关文章
LeetCode 418. 屏幕可显示句子的数量(DP)*
给你一个 rows x cols 的屏幕和一个用 非空 的单词列表组成的句子,请你计算出给定句子可以在屏幕上完整显示的次数。
Michael阿明
2021/02/19
1.1K0
Droid@screen:在PC屏幕上显示Android手机屏幕
这里介绍一款工具——Droid@screen,用来获取手机屏幕,显示在PC屏幕上。它集截图、录像等多种功能于一体。
流柯
2018/08/30
2.2K0
监听 javascript 对象的变化
这一章话题的由来,还要从一些学员的作业说起。写这篇文章主要是想让大家能从不同的角度分析问题,学习的过程中多看,多练,多想,多查,多用心。在特别多的学习网站中大部分的学习资料基本都是循规蹈矩的,例如慕课网的 javascript 入门教程中,很多讲师都讲了一些实例,而这些例子中的代码风格如出一辙,没什么新意,而且这些教程占了很大一部分比例。在这里,给大家提供另外一种思路 ------ 监听,具体代码的实现大家自己实现。也欢迎大家评论区写出不同想法。
用户7293182
2022/01/13
3.2K0
监听 javascript 对象的变化
js 监听数据的变化
/** * 监听数据的变化 * @param obj 需要监听的对象 * @param name 需要监听的属性 * @param func 数据变化后的回调函数 */ export const watch = (obj: Obj, name: string, func: (value: any) => void) => { Object.defineProperty(obj, name, { get: function() { return obj; },
小鑫
2022/05/11
9.3K0
从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
炒香菇的书呆子
2020/08/13
1.4K0
从键盘输入一个十进制个位数,在屏幕上显示相应数量的该数。 例如,输入3,屏幕上将显示“333”。
(六)监听响应数据的变化
监听对象中的基本类型的响应性属性,就是说只监听对象中的某一个属性,比如说只监听 options.value.user.naem ,并且如果是监听对象中的基本类型的响应性属性的时候,第一个参数需要使用 回调函数的形式 () => options.value.user.name
老怪兽
2023/02/22
1.7K0
Redis实现点赞/取消点赞
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。
用户4283147
2022/10/27
3.2K0
Redis实现点赞/取消点赞
android监听list变化
思路 主要的思路就是,新建个接口定义一个onChange()方法,然后在操作list的类中,添加这个监听。 代码 TeaChangeListListener.java public interface TeaChangeListListener { public void onChange(); } TeaList.java public class TeaList<T> { private TeaChangeListListener listener; private Arra
tea9
2022/07/16
2.3K0
Redis是如何实现点赞、取消点赞的?
作者:solocoder juejin.im/post/5bdc257e6fb9a049ba410098
用户1516716
2019/11/24
3.4K1
Redis是如何实现点赞、取消点赞的?
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。
架构师修炼
2021/01/05
2.7K0
Redis是如何实现点赞、取消点赞的?
Redis 是如何实现点赞、取消点赞的?
点赞是个频率比较高的事件,也不是特别重要的记录,使用缓存来存储还是比较合理的,另外像排行榜、热议等都可以使用缓存,先来看看点赞是如何实现的吧,详细代码可以clone看下哈,跟紧脚步,学技术~
java思维导图
2020/03/03
7K0
Redis 是如何实现点赞、取消点赞的?
Redis是如何实现点赞、取消点赞的?
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。
java思维导图
2020/01/02
2.5K0
Redis 是如何实现点赞、取消点赞的?
本文基于 SpringCloud, 用户发起点赞、取消点赞后先存入 Redis 中,再每隔两小时从 Redis 读取点赞数据写入数据库中做持久化存储。
Bug开发工程师
2020/03/12
2.9K0
Redis 是如何实现点赞、取消点赞的?
实时监听页面的变化
问题产生于需求,因为项目需要适配pc和移动端多套布局,所以某些元素在特定的宽度下会产生错位的现象。
子舒
2022/06/09
4.2K0
NodeJS是如何监听文件的变化?
Keywords: 操作系统差异、识别用户/编辑器操作、连续触发的优化、工程级 API。
心谭博客
2020/04/21
4.8K0
Android监听屏幕锁屏
郑重声明:本文转载自:http://www.cnblogs.com/zhaoyanjun
程序员飞飞
2020/03/02
3K0
用这招监听 Vue 的插槽变化
最近,每当组件的内容(插槽、子组件等)发生变化时,我需要更新它的状态。对于上下文,它是一个表单组件,用于跟踪其输入的有效性状态。
前端小智@大迁世界
2022/06/15
2.7K0
Vue是怎样监听数组的变化的?
其实我们并不是要你把答案都记下来,而是把其中的思想学习到。就像你接触一个新的领域react,你也一样可以把基本思想提炼出来。
bb_xiaxia1998
2022/10/17
4400
(译)SDL编程入门(2)在屏幕上显示图像
注意:从现在开始,教程将只涉及源代码的关键部分。如果想看完整的程序,你必须下载完整的源码。
arcticfox
2020/09/24
2.7K0
小程序监听屏幕滑动事件
2.根据触点的起始位置和终止位置计算滑动方向(在data中配置touchx和touchy数值)
Kindear
2020/10/26
3.7K0

相似问题

如何显示几个facebook点赞按钮的点赞数量?

10

Facebook点赞按钮错误:没有在大按钮上显示点赞数量

14

如何在“点赞按钮”中显示确切的点赞数量?

23

显示多个页面的点赞数量

10

Facebook点赞计数器按钮并不总是显示点赞数量

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文