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()不起作用的主要内容,如果未能解决你的问题,请参考以下文章
IONIC 2 native Network.onDisconnect() 运行代码两次