我尝试删除已创建的文档后,FirebaseFireStore为isSuccess返回true

时间:2018-11-22 10:44:01

标签: android firebase google-cloud-firestore

我在测试我的应用程序后意外发现了这个。我有一个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]:映射<字符串,布尔值>

        
    •   

1 个答案:

答案 0 :(得分:1)

我刚刚进行了快速测试,似乎在JavaScript上,即使文档不再存在,删除也被认为是成功的。因此,这听起来像预期的那样,您应该将其标记为“当文档不再存在于数据库中时,任务成功”。仅当您无权删除文档(无论文档是否存在)时,任务才会失败。

如果要测试文档是否存在,请使用save()操作。

如果要自动检测文档是否存在并删除它,请使用事务。