Firebase onDisconnect()不起作用

Posted

技术标签:

【中文标题】Firebase onDisconnect()不起作用【英文标题】:Firebase onDisconnect() not working 【发布时间】:2014-08-04 20:23:52 【问题描述】:

我在使用 Firebase 的 onDisconnect() 时遇到问题。当我注册ef.onDisconnect().removeValue() 然后断开互联网并关闭应用程序(正常或强制关闭,没关系)时,它不会删除值(是的,我等了超过 5 分钟,值仍然存在)。这就是我创建 firebase 并注册 onDisconnect 的方式。

Firebase ref = new Firebase("....");
ref.onDisconnect().removeValue();

当我调用ref.setValue(...)ref.removeValue() 时,它可以正常工作。

sdk 有什么问题还是我应该改变一些东西?

【问题讨论】:

没有 removeValue() 或 setValue() 命令。您可以尝试使用 set() 和 remove() 并更新您的示例以匹配结果吗? 我正在写有关 java sdk 的文章,其中有命令 removeValue 和 setValue。见firebase.com/docs/managing-presence.html第一个java例子,有presenceRef.onDisconnect().setValue("I was disconnected!"),我不需要setValue,但是removeValue并没有用。 抱歉,我错过了 Java 标记 :( 您是否在执行 setValue()/removeValue() 之前进行身份验证?可能的答案是您的 onDisconnect() 触发时权限不同(即用户in 不再经过身份验证或数据处于不允许写入的状态)。 【参考方案1】:

如果您要更改的值需要身份验证,请确保您已通过身份验证,并确保服务器已确认您对 removeValue 的调用。您可以通过将 CompletionListener 添加到 removeValue 调用来验证这一点:https://www.firebase.com/docs/java-api/javadoc/com/firebase/client/OnDisconnect.html#removeValue(com.firebase.client.Firebase.CompletionListener)

这将让您知道服务器何时收到删除值请求并已将其适当地排队。

【讨论】:

以上是关于Firebase onDisconnect()不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Firebase:onDisconnect 事件何时触发?

与firebase onDisconnect反应本机

Firebase 连接检测在 60 秒后不起作用

IONIC 2 native Network.onDisconnect() 运行代码两次

如何为定位服务实现 onConnectionFailed() 和 onDisconnected()

onDisconnect 在客户端重新连接时触发