我在测试我的应用程序后意外发现了这个。我有一个recycleListView,其中包含cardview,每个视图都有来自firestore的文档。在我随机删除一些文档之后,它会从FirebaseFirestore中消失,但是当我再次尝试删除它时,它仍然返回isSuccess()true。有人可以解释一下为什么会这样吗?
这是我用来从“收藏夹”中删除文档的代码。
FirebaseFirestore.getInstance().collection("Collection_A")
.document(list[position].id).delete().apply {
addOnCompleteListener { task ->
if (task.isComplete){
Log.d("Complete", "Task complete")
}
if (task.isSuccessful) {
Log.d("Complete", "Task complete and Success")
} else {
Log.d("Complete", "Task complete but not success")
}
}
addOnCanceledListener {
Log.d("Cancel", "Delete data canceled")
}
addOnFailureListener { ex ->
ex.printStackTrace()
}
Collection_A
文档…[随机生成的文档ID]
名称[field]:字符串
计数[字段]:整数
dateInWeek [field]:映射<字符串,布尔值>
答案 0 :(得分:1)
我刚刚进行了快速测试,似乎在JavaScript上,即使文档不再存在,删除也被认为是成功的。因此,这听起来像预期的那样,您应该将其标记为“当文档不再存在于数据库中时,任务成功”。仅当您无权删除文档(无论文档是否存在)时,任务才会失败。
如果要测试文档是否存在,请使用save()
操作。
如果要自动检测文档是否存在并删除它,请使用事务。