Если вы используете OnCompleteListener, вы гарантированно получите либо результат, либо исключение. Если task.isSuccessful()
, вы гарантированно получите объект результата и не исключение.
addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
// Exception is guaranteed to be non-null
Exception e = task.getException();
}
else {
// Result is guaranteed to be non-null
task.getResult();
}
});
Если вы используете OnSuccessListener
, результат гарантированно будет ненулевым, но не будет вызван в случае ошибки.
Если вы используете OnFailureListener
, исключение гарантированно будет ненулевым, но оно не будет вызвано, если нет ошибки.
Вы можете связать OnSuccessListener
и OnFailureListener
, если не хотите проверять успех внутри OnCompleteListener
.
Вы можете прочитать мой канонический справочник по Задачам в этой серии блогов .