Когда вы используете следующую строку кода:
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(/* ... */);
Вы пытаетесь удалить документ, который не существует, и это потому, что вы не создали его в первую очередь. Если вам нужно удалить указанный c документ, вам нужно знать его идентификатор. Таким образом, следующие строчки кода помогут:
public void deleteTasks(View v) {
userId = mFirebaseAuth.getCurrentUser().getUid();
String tskid = "CQ45RKh8Ohd6DXjSQ8RO";
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");
}
});
}
Чтобы удалить этот документ, я использовал точно такой же идентификатор, который существует в базе данных.