我使用了一个导致应用程序崩溃的小错误。查询来自Firebase的数据时很可能发生错误(是的,是我的错)。这是当应用程序启动将要执行的第一个函数:为什么当应用程序崩溃时,Firebase不支持onDisconnect?
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()
那么这个设置后,我查询例如从火力地堡一个数组,但我并设置一些值错什么导致应用程序崩溃。 onDisconnected函数从不执行。我等了一整天,我的信息仍然显示在实时数据库中。如果此代码在服务器端执行,那么服务器如何仍然认为我已连接?打开飞行模式关闭应用&将正确断开我的连接。
耐心在这里是一种美德。当应用程序崩溃时,Firebase客户端没有时间明确指示断开连接。你的'onDisconnect()'处理程序仍然会触发,但是它需要几分钟的时间(套接字超时)。请参阅http://stackoverflow.com/questions/30668292/firebase-when-ondisconnect-event-fire/30670928#30670928 –
我应该耐心等待多久?我已经在我的问题中说过,我等了一整天,相信我是24小时,而且还没有消失。 –
正如我在回答中所说的那样,可能需要几分钟的时间。长于此,更可能是其他事情出错了。另外请记住,在您的示例中,重新启动应用程序将重写相同的值。 –