onSuccessTask против addOnSuccessListener? - PullRequest
0 голосов
/ 25 июня 2019

Я использую Google Firestore для базы данных Android и хочу узнать разницу между onSuccessTask и addOnSuccessListener.

Например, вот я обновляю документ Firestore:

val doc = db.collection("books").document(book).update(data)

Чтобы выполнить вышеуказанные действия после завершения обновления, я могу выполнить одно из следующих действий:

.onSuccessTask { } or .addOnSuccessListener { }

, что для меня, дает точно такой же результат.

Может кто-нибудь выяснить, в чем разница и какой из них следует использовать?

1 Ответ

2 голосов
/ 25 июня 2019

Существует три варианта метода Task * addOnSuccessListener():

Добавляет прослушиватель, который вызывается в случае успешного завершения Задачи.

Добавляет прослушиватель, который вызывается при успешном завершении Задачи.

Добавляет прослушиватель с областью действия, который вызывается при успешном завершении Задачи.

И два варианта метода onSuccessTask() Задачи, которые:

Возвращает новую задачу, которая будет завершена с результатом применения указанного SuccessContinuation к этой задаче, когда эта задача завершитсяуспешно.

Возвращает новую задачу, которая будет выполнена с результатомприменение указанного SuccessContinuation к этой задаче, когда эта задача успешно завершена.

Как вы, вероятно, видите, основное отличие состоит в том, что в случае addOnSuccessListener() тип возвращаемого объекта имеет типabstract Task<TResult>, поэтому каждый раз, когда вы его используете, вам необходимо предоставить реализацию для этого, в то время как при использовании метода onSuccessTask() тип возвращаемого объекта имеет тип <TContinuationResult> Task<TContinuationResult> (который не является абстрактным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...