Android Firebase在什么情况下触发OnCanceled()
我想涵盖firebase/firestore的所有故障案例。我见过函数触发OnFailure回调,但OnCancelled在什么情况下被触发?我还没有为各种函数(如写/删除以及FirebaseUser和AuthUI上的操作)强制任何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")
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)都会返回一个任务,所以检查文档是否。。。那太糟糕了