Как отследить задачу Firebase после перезапуска активности?

У меня есть код в Fragment как следующее.

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("amazing/spiderman");

Map<String, Object> updatesMap = new HashMap<>();
updatesMap.put("name", "Peter Parker");
updatesMap.put("girlFriend", "Mary Jane");

Task<Void> task = databaseReference.updateChildren(updatesMap);
task.addOnCompleteListener(getActivity(), new OnCompleteListener<Void>()
    {
        @Override
        public void onComplete(@NonNull Task<Void> task)
        {
            if (task.isSuccessful())
            {
                // Do something awesome
            }
            else
            {
                // Handle error
            }
        }
    });

Теперь, если ориентация устройства меняется сразу после запуска Task, Task разрушается (как и ожидалось) и OnCompleteListener никогда не звонят. Таким образом, я понятия не имею, было ли задание выполнено успешно или не выполнено после Activity перезапускается.

Предлагает ли команда Firebase наилучшую практику в этом случае? Мой поиск не нашел никаких конкретных предложений.

На мой взгляд, существует ряд возможных решений, в том числе использование Fragment отслеживать состояние Task, Какая версия addOnCompleteListener я должен использовать, если я переместить Task в сохранении Fragmentимея в виду, что Activity разрушается, но Fragment не делает?

0 ответов

Другие вопросы по тегам