【问题标题】:Firebase - Is it possible to have a "Cloud Listener" for app connection status?Firebase - 是否可以为应用程序连接状态提供“云侦听器”?
【发布时间】:2017-09-22 18:56:40
【问题描述】:

我正在构建一个 Android 游戏,它要求用户在玩游戏时在线。我想检测游戏是否在玩游戏时中断(互联网连接丢失\设备已关闭等...),如果是 - 这应该被视为用户的损失,并且是写入数据库。 我现在唯一想到的就是离线保存这个损失,并在用户重新上线时更新它。


我知道我可以检测到像this 这样的应用程序连接状态,但这无济于事,因为我只能在此之后执行离线操作。我也知道我可以听this之类的数据库中写入事件,但这对我没有帮助,因为游戏中断后没有孩子在更新。


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

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

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

    文档中的一个简单示例:

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

    但我建议您阅读完整的 documentation on managing presence 以获取更多示例。

    有了这个,您可以在onDisconnect处理程序的操作上触发云函数,然后更新游戏状态。

    请注意,在非干净断开连接的情况下,服务器可能需要几分钟才能检测到丢失的连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多