首页 > 解决方案 > FirebaseFirestore 在 OnCompleteListener、OnSuccessListener、OnCanceledListener 和 OnFailureListener 之间有所不同

问题描述

有人可以解释一下这些 Listener 有何不同吗?

AFAIK,如果我使用 OnCompleteListener() 我可以检查任务是否完成,如果它完成我仍然可以检查它是否成功。

当任务失败时,我对此感到困惑。它发生是因为任务未完成或任务未成功,或者在这两种情况下都可能发生。OnCanceledListener 是如何工作的?什么时候会调用?“任务取消成功时调用”是什么意思?

请解释一下,我对这些 Listener 行为感到困惑?

标签: firebasegoogle-cloud-firestore

解决方案


当 Task 所代表的工作完成时,无论其成功或失败,Task 都被视为完成。所以可能有也可能没有错误,但你必须检查一下。另一方面,当任务所代表的工作按预期完成且没有错误时,任务就成功了。

OnFailureListener当任务因异常而失败时调用。因此,您可以从异常中获取消息以查看您的任务失败的原因。

OnCanceledListener当Task成功取消时调用,这意味着每个Task都有一个cancel()方法,一旦这个方法成功完成,就会调用这个监听器。

另请注意,如果网络连接丢失(用户设备上没有网络连接),则既onSuccess()不会也不会onFailure()触发。这种行为是有道理的,因为只有在 Firebase 服务器上提交(或拒绝)数据时才认为任务已完成。


推荐阅读