Android Firebase-是否可能有一个;“云侦听器”;应用程序连接状态?

Android Firebase-是否可能有一个;“云侦听器”;应用程序连接状态?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在开发一款Android游戏,它要求用户在玩游戏时在线。我想检测游戏是否在玩时中断(互联网连接断开\设备关闭等),如果是,则应视为用户丢失,并写入数据库我现在唯一想做的就是离线保存此损失,并在用户恢复在线时进行更新。 我知道我可以像这样检测应用程序连接状态,但这没有帮助,因为我只能在此之后执行脱机操作。我也知道我可以在数据库中像这样记录事件,但这对我没有帮助,因为在游戏中断后没有孩子被更新 我的问题是:有没有办法编写一个可以监听特定应用程序连接状态的云函数?如果没有办法,我还有什么其他选

我正在开发一款Android游戏,它要求用户在玩游戏时在线。我想检测游戏是否在玩时中断(互联网连接断开\设备关闭等),如果是,则应视为用户丢失,并写入数据库我现在唯一想做的就是离线保存此损失,并在用户恢复在线时进行更新。


我知道我可以像这样检测应用程序连接状态,但这没有帮助,因为我只能在此之后执行脱机操作。我也知道我可以在数据库中像这样记录事件,但这对我没有帮助,因为在游戏中断后没有孩子被更新



我的问题是:有没有办法编写一个可以监听特定应用程序连接状态的云函数?如果没有办法,我还有什么其他选择

您可以使用
onDisconnect()
处理程序。这是连接应用程序时运行的一段代码,用于设置服务器在检测到应用程序已断开连接时运行的操作

文档中的一个简单示例:

但我建议您阅读全文以了解更多示例

使用此功能,您可以在
onDisconnect
处理程序的操作上触发云函数,然后更新游戏状态

请注意,如果发生非干净断开连接,服务器可能需要几分钟才能检测到连接丢失

DatabaseRef presenceRef = FirebaseDatabase.getInstance().getReference("disconnectmessage");
// Write a string when this client loses connection
presenceRef.onDisconnect().setValue("I disconnected!");