当应用崩溃时,为什么Firebase不支持onDisconnect?

时间:2017-03-15 20:29:16

标签: swift firebase firebase-realtime-database

我习惯了我有一个小错误导致应用程序崩溃。从Firebase查询数据时很可能发生错误(是的,我的错)。这是应用程序启动时将执行的第一个函数:

let currentUser = FIRAuth.auth()?.currentUser?.uid
            let con = self.gameRef!.childByAutoId()
            self.usersKey = con.key
            let values = ["username": "test", "score": 0, "userID": currentUser!] as [String : Any]
            con.updateChildValues(values)
            con.onDisconnectRemoveValue()

然后在设置之后,我查询了一个来自Firebase的数组,但我确实设置了一些错误导致应用程序崩溃的错误。 onDisconnected函数永远不会执行。我等了一整天,我的信息仍然显示在实时数据库中。如果这个代码是在服务器端执行的,那么服务器仍然认为我连接了怎么办?关闭应用程序&打开飞行模式会使我正确断开连接。

1 个答案:

答案 0 :(得分:0)

这是因为您的应用未正常关闭。为了激活该功能,必须在应用程序关闭并清理其所有连接时。它崩溃时没有办法做到这一点,因为它不会再执行任何代码了。

您可以围绕该部分代码包装异常处理程序,然后在该异常上执行您需要的内容。