我正在尝试从Firestore中删除文档。我尝试根据凡士通随机生成的任务ID来执行此操作。当一个特定的任务在Android上被选中时,我希望能够删除该任务。然而,当我尝试调试代码时,它显示了一个数据库中不存在的随机ID,并试图删除该ID,并在控制台中向我发送了一条成功消息。我不知道我错在哪里。请咨询。
public void deleteTasks(View v) {
userId = mFirebaseAuth.getCurrentUser().getUid();
String tskid= fStore.collection("usersData").document(userId).collection("tasks").document().getId();
DocumentReference taskref = fStore.collection("usersData").document(userId).collection("tasks").document(tskid);
taskref.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d("tag", "Task Deleted Successfully");
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("tag", "Task Deletion Unsuccessful");
}
});
}
字符串
上面的delete方法是使用android:OnClick在按钮上调用的
The Task I'd like to delete is Circled
1条答案
按热度按时间9q78igpj1#
当您使用以下代码行时:
字符串
您正在生成一个新的随机ID。实际上,你是在为将来要写的文档保留一个密钥。使用此线路时:
型
您正在创建对该位置的引用。但是,使用此行时:
型
您正在尝试删除一个不存在的文档,这是因为您没有首先创建它。如果需要删除特定文档,则需要知道ID。因此,下面的代码行将完成这个任务:
型
为了删除该文档,我使用了数据库中存在的完全相同的ID。