我正在通过Android数据库使用Google Firestore,想知道onSuccessTaskaddOnSuccessListener之间的区别。

例如,这是我更新Firestore文档的方法:

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

对于上述情况,要在更新完成时采取措施,我可以执行以下任一操作:
.onSuccessTask { } or .addOnSuccessListener { }

对我来说,得出的结果完全相同。

有人可以弄清区别是什么,应该使用哪一个吗?

最佳答案

Task的addOnSuccessListener()方法有以下三种:

  • addOnSuccessListener(Executor executor, OnSuccessListener listener):


  • addOnSuccessListener(OnSuccessListener listener):


  • addOnSuccessListener(Activity activity, OnSuccessListener listener):



  • Task的onSuccessTask()方法有两种,分别是:
  • onSuccessTask(Executor executor, SuccessContinuation successContinuation):


  • onSuccessTask(SuccessContinuation successContinuation):



  • 您可能会看到,主要区别在于,如果使用addOnSuccessListener(),则返回的对象的类型为abstract Task<TResult>,因此,每次使用它时,您都需要为此提供一个实现,而使用onSuccessTask()方法时,该类型返回的对象的形式是<TContinuationResult> Task<TContinuationResult>(不是抽象的)。

    10-08 03:06