我正在将Google Firestore用于Android数据库,并想知道onSuccessTask
和addOnSuccessListener
之间的区别。
例如,这里是我更新Firestore文档:
val doc = db.collection("books").document(book).update(data)
对于上述情况,要在更新完成时采取措施,我可以执行以下任一操作:
.onSuccessTask { } or .addOnSuccessListener { }
对我来说,产生完全相同的结果。
有人可以弄清区别是什么,应该使用哪一个?
答案 0 :(得分:2)
Task的addOnSuccessListener()
方法有以下三种:
添加一个侦听器,如果任务成功完成,将调用该侦听器。
添加一个侦听器,如果任务成功完成,将调用该侦听器。
添加一个活动范围侦听器,如果任务成功完成,则将调用该侦听器。
Task的onSuccessTask()
方法有两种:
返回一个新任务,该任务将在此任务成功完成时应用指定的SuccessContinuation来完成。
返回一个新任务,该任务将在此任务成功完成时应用指定的SuccessContinuation来完成。
您可能会看到,主要区别在于,对于addOnSuccessListener()
,返回的对象类型为abstract Task<TResult>
类型,因此每次使用时,您都需要提供一种实现方法,当使用onSuccessTask()
方法时,返回的对象类型为<TContinuationResult> Task<TContinuationResult>
类型(不是抽象的)。
答案 1 :(得分:0)
基本上,您只想使用结果时就使用addOnSuccessListener
,而onSuccessTask
可以与continueWith
或continueWithTask
等其他方法一起使用链接任务。