热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Firebase.on('value,function(){})一次执行两次

如何解决《Firebase.on('value,function(){})一次执行两次》经验,为你挑选了1个好方法。

我注意到一些我不理解的东西.我的代码中有以下"on"查询设置.当我把一个孩子推到较低的水平时,在我看来,"on"回调函数会被提升两次.

fb.child('Question').on('value',function(ss){ console.log('on called'); });

示例结构:

---->答案

----> {答案1}:{答案对象}
----> {答案2}:{答案对象}

我通过"推送"功能添加"答案",因此答案的"键"是唯一创建的firebase"唯一ID".

fb.child('Question/Answers').push({the answer object});

在这一点上,我只是推动新的"答案",没有更新或设置.我所看到的是,当我推送一个新的"答案对象"时,"on"函数被调用两次.

我已经进行了双重检查,并且我没有多次附加"on"事件处理程序.我还检查确保"推"只被调用一次.

这是正确的行为吗?我正在"猜测"推送是"插入"孩子,然后"设置"答案对象,这导致开启两次?但这对我来说听起来不对?

显然我对Firebase来说相当新,所以不确定这是否是设计的.但令我感到紧张的是,我每次更新都会多次运行"on"代码?



1> Mohammed Saf..:

我在"值"事件中遇到了与firebase相同的问题.这是因为多个侦听器附加于同一事件,页面加载或重新认证等.

解决方案是在附加新侦听器之前删除现有侦听器.

off()事件之前的firebase调用事件on()中修复此问题.

在这种情况下,

fb.child('Question').off();
fb.child('Question').on('value',function(ss){ console.log('on called'); });

将解决这个问题


推荐阅读
author-avatar
520那孩HAPPY
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有