Android Firebase在什么情况下触发OnCanceled()

Android Firebase在什么情况下触发OnCanceled(),android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我想涵盖firebase/firestore的所有故障案例。我见过函数触发OnFailure回调,但OnCancelled在什么情况下被触发?我还没有为各种函数(如写/删除以及FirebaseUser和AuthUI上的操作)强制任何OnCanceled()触发器,也没有看到任何文档。这些案例是否有记录 FirebaseDatabase.getInstance().getReference("users/test").setValue("blabla")

我想涵盖firebase/firestore的所有故障案例。我见过函数触发OnFailure回调,但OnCancelled在什么情况下被触发?我还没有为各种函数(如写/删除以及FirebaseUser和AuthUI上的操作)强制任何OnCanceled()触发器,也没有看到任何文档。这些案例是否有记录

FirebaseDatabase.getInstance().getReference("users/test").setValue("blabla")
                .addOnSuccessListener(new OnSuccessListener<Void>()
                {
                    @Override
                    public void onSuccess(Void aVoid)
                    {
                        Log.v("TEST", "DB WRITE SUCCESS");
                    }
                })
                .addOnFailureListener(new OnFailureListener()
                {
                    @Override
                    public void onFailure(@NonNull Exception e)
                    {
                        Log.v("TEST", "DB WRITE FAILURE " + e);
                    }
                })
                .addOnCanceledListener(new OnCanceledListener()
                {
                    @Override
                    public void onCanceled()
                    {
                        Log.v("TEST", "DB WRITE CANCELLED");
                    }
                });

      FirebaseFirestore fs = FirebaseFirestore.getInstance();
        fs.collection("users").document("blabla").set(data)
                .addOnSuccessListener(new OnSuccessListener<Void>()
                {
                    @Override
                    public void onSuccess(Void aVoid)
                    {
                        Log.v("TEST", "FS WRITE SUCCESS");
                    }
                })
                .addOnFailureListener(new OnFailureListener()
                {
                    @Override
                    public void onFailure(@NonNull Exception e)
                    {
                        Log.v("TEST", "FS WRITE FAILURE " + e);
                    }
                })
                .addOnCanceledListener(new OnCanceledListener()
                {
                    @Override
                    public void onCanceled()
                    {
                        Log.v("TEST", "FS WRITE CANCELLED");
                    }
                });

FirebaseUser user = mAuth.getCurrentUser();
                    UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                            .setDisplayName(name)
                            .build();
                   
                    user.updateProfile(profileUpdates)
                            .addOnSuccessListener(new OnSuccessListener<Void>()
                            {
                                @Override
                                public void onSuccess(Void aVoid)
                                {
                                    Log.v("NICK", "SUCCESS UPDATED PROFILE");
                                }
                            })
                            .addOnCanceledListener(new OnCanceledListener()
                            {
                                @Override
                                public void onCanceled()
                                {
                                    Log.w("NICK", "CANCELED UPDATE PROFILE");
                                }
                            })
                            .addOnFailureListener(new OnFailureListener()
                            {
                                @Override
                                public void onFailure(@NonNull Exception e)
                                {
                                    Log.w("NICK", "FAILED TO UPDATE PROFILE");
                                }
                            });

AuthUI.getInstance().delete(this)
                        .addOnSuccessListener(new OnSuccessListener<Void>()
                        {
                            @Override
                            public void onSuccess(Void aVoid)
                            {
                                Log.v("AUTHUI", "SUCCESS DELETED ACCNT");
                            }
                        })
                        .addOnCanceledListener(new OnCanceledListener()
                        {
                            @Override
                            public void onCanceled()
                            {
                                Log.w("AUTHUI", "CANCELED DELETE ACCNT");
                            }
                        })
                        .addOnFailureListener(new OnFailureListener()
                        {
                            @Override
                            public void onFailure(@NonNull Exception e)
                            {
                                Log.w("AUTHUI", "FAILED TO DELETE ACCNT " + e);

                            }
                        });
FirebaseDatabase.getInstance().getReference(“用户/测试”).setValue(“blabla”)
.addOnSuccessListener(新的OnSuccessListener()
{
@凌驾
成功时公开作废(作废避免)
{
Log.v(“测试”,“数据库写入成功”);
}
})
.addOnFailureListener(新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Log.v(“测试”,“数据库写入失败”+e);
}
})
.addOnCanceledListener(新的OnCanceledListener()
{
@凌驾
已取消的公共无效()
{
Log.v(“测试”,“数据库写入被取消”);
}
});
FirebaseFirestore fs=FirebaseFirestore.getInstance();
fs.集合(“用户”).文档(“blabla”).集合(数据)
.addOnSuccessListener(新的OnSuccessListener()
{
@凌驾
成功时公开作废(作废避免)
{
Log.v(“测试”、“FS写入成功”);
}
})
.addOnFailureListener(新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Log.v(“测试”,“FS写入失败”+e);
}
})
.addOnCanceledListener(新的OnCanceledListener()
{
@凌驾
已取消的公共无效()
{
Log.v(“测试”,“FS写入已取消”);
}
});
FirebaseUser=mAuth.getCurrentUser();
UserProfileChangeRequest profileUpdates=新建UserProfileChangeRequest.Builder()
.setDisplayName(名称)
.build();
user.updateProfile(profileUpdates)
.addOnSuccessListener(新的OnSuccessListener()
{
@凌驾
成功时公开作废(作废避免)
{
Log.v(“尼克”,“成功更新档案”);
}
})
.addOnCanceledListener(新的OnCanceledListener()
{
@凌驾
已取消的公共无效()
{
Log.w(“尼克”,“取消更新配置文件”);
}
})
.addOnFailureListener(新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Log.w(“尼克”,“更新档案失败”);
}
});
AuthUI.getInstance().delete(此)
.addOnSuccessListener(新的OnSuccessListener()
{
@凌驾
成功时公开作废(作废避免)
{
Log.v(“AUTHUI”、“成功删除账户”);
}
})
.addOnCanceledListener(新的OnCanceledListener()
{
@凌驾
已取消的公共无效()
{
Log.w(“AUTHUI”、“已取消删除帐户”);
}
})
.addOnFailureListener(新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Log.w(“AUTHUI”,“删除账户失败”+e);
}
});
在什么情况下会触发OnCanceld


没有。任务取消仅针对专门设计为可取消的任务。Firestore任务不会发生这种情况。

您试过阅读此内容吗?这是为侦听器准备的-只有两个选项onDataChange和OnCanceled。但是writes和许多其他函数返回的任务有OnFailure和OnCanceled.Hmmm,对。那么也许?这就是抽象任务类的定义。问题是firebase组件是否会取消这些特定任务。根据道格的回答判断——不。也许这个“取消”功能只用于外部取消——我不知道,没有足够的经验。因此,我必须验证所有OnCancelled的firebase组件是否从未在内部触发。好吧,所有这些方法(至少是firebase one)都会返回一个任务,所以检查文档是否。。。那太糟糕了