Я хочу обновить свою базу данных пожарного депо, когда фрагмент уничтожен.
Когда я заменяю свой фрагмент A другим (в пределах Activity), вызывается A.onDestroy () и DocumentRefence.update () работает отлично.
Проблема в том, что я получаю странное поведение при выполнении обновления, в случае, когда Fragment.onDestroy () вызывается, когда приложение закрывается пользователем. (Когда пользователь удаляет приложение в последних приложениях)
Похоже, что метод DocumentReference.update () не запускается и просто блокирует мой код.
Вот onDestroy () в моем фрагменте.
@Override
public void onDestroy() {
Log.d("Fragment", "onDestroy: before");
FirestoreHelper.removePlayer(viewModel.getGameName(), viewModel.getPlayerName());
Log.d("Fragment", "onDestroy: after");
super.onDestroy();
}
А вот метод, который обновляет DocumentReference.
public static void removePlayer(String gameName, String playerName) {
Log.d("Firestore", "removePlayer: before");
DocumentReference docRef = getGamesReference().document(gameName);
Log.d("Firestore", "removePlayer: middle");
docRef.update("players." + playerName, FieldValue.delete());
Log.d("Firestore", "removePlayer: after");
}
Вот мой журнал после закрытия приложения:
D/Activity: onDestroy:
D/Fragment: onDestroy: before
D/Firestore: removePlayer: before
D/Firestore: removePlayer: middle
Вы видно, что docRef.update (...) блокирует код.
Заранее спасибо за любой ответ!