Если вы хотите удалить данные из базы данных реального времени при отключении пользователя, рассмотрите , используя обработчик onDisconnect
. С таким обработчиком сервер удалит данные, когда обнаружит, что клиент ушел. Это может занять несколько минут (в зависимости от того, как приложение закрыто), но, как правило, будет более надежным, чем попытки выполнять какие-либо сетевые вызовы, когда приложение закрывается, поскольку инструкция о том, что делать, сразу отправляется на сервер, когда вы вызов onDisconnect
.
Если вы используете обработчик onDisconnect
, то, что вы можете сделать в applicationWillTerminate
, - это активно сказать клиенту закрыть соединение, вызвав goOffline()
метод . Хотя это также может не работать, в этом случае сервер все равно обнаружит, что клиент пропал через несколько минут, в то время как в случае, когда вызов на go offline делает это, обработчик onDisconnect
будет выполняется сразу.
Если код для удаления данных является сложным, подумайте о наличии простого значения в базе данных, которое вы удаляете с помощью обработчика onDisconnect
. Затем, присоединяя облачную функцию к удалению этого простого значения, код облачных функций будет запускаться, когда сервер обнаружит, что клиент ушел.