在明确删除之前,SingleValueEvent 侦听器是不是计入 Firebase RealTime DB 中的“同时连接”?

Posted

技术标签:

【中文标题】在明确删除之前,SingleValueEvent 侦听器是不是计入 Firebase RealTime DB 中的“同时连接”?【英文标题】:Do SingleValueEvent listeners count towards 'simultaneous connections' in Firebase RealTime DB until explicitly removed?在明确删除之前,SingleValueEvent 侦听器是否计入 Firebase RealTime DB 中的“同时连接”? 【发布时间】:2018-12-21 16:59:32 【问题描述】:

根据 Firebase 文档,通过 addListenerForSingleValueEvent() 添加的侦听器会在返回包含子节点的所有数据后触发,该数据包含在添加它的引用处,然后不会再次触发。现在,将任何侦听器附加到引用,Db 连接都被计为正在使用中。

一旦单值监听器触发, 与其他子事件侦听器或值事件侦听器不同,它会自动释放数据库连接吗? 或者 除非明确删除,否则它是否会继续被视为同时连接限制下的数据库连接?

【问题讨论】:

【参考方案1】:

监听单个事件与添加普通监听器完全相同。 SDK 只是在第一次触发后删除该侦听器。

移除最后一个监听器并不一定会立即“释放”连接。作为优化,连接会持续一段时间,然后由于缺少侦听器而断开。

【讨论】:

感谢弗兰克和道格的快速回答。因此推断不需要使用 removeEventListener() 显式分离此侦听器,或者最好在 onDestroy() 中显式删除此侦听器,以防活动在事件触发之前被销毁? 这与连接管理完全不同。当您不再需要它们时,您应该删除所有侦听器。它不知道活动的范围,因此如果您在活动消失时将其保持打开状态,它仍然可能在尝试引用不再存在的内容时触发并导致崩溃。 谢谢道格知道了。因此,就我而言,由于我仅在同一活动中使用单值事件侦听器返回的数据,因此最好在 onDestroy() 中删除侦听器以避免此类崩溃。 这是一种方法。每个人可能对何时添加和删除有不同的要求。

以上是关于在明确删除之前,SingleValueEvent 侦听器是不是计入 Firebase RealTime DB 中的“同时连接”?的主要内容,如果未能解决你的问题,请参考以下文章

无法删除数据框 python 3 中的行。值错误:真值不明确

JDBC删除表实例

明确限制 Django QuerySet

关于mysql的级联删除(之前好多人咨询过我)

在 main 之前退出程序是明确定义的行为吗?

6个删除顽固文件的工具