Я попытался получить идентификатор документа, который был случайно сгенерирован firebase. Я хочу получить задачу по ее идентификатору, поэтому, если мне нужно удалить кучу задач, я могу просто выбрать задачу и удалить. У меня есть код ниже, где я пытаюсь получить taskID из класса TaskList, где инициализаторы и инициаторы инициализированы для поля, чтобы я мог удалить конкретную задачу. Однако при запуске кода возвращается следующая ошибка:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.riseapp, PID: 2160
java.lang.NullPointerException: Provided document path must not be null.
at com.google.firebase.firestore.util.Preconditions.checkNotNull(com.google.firebase:firebase-firestore@@21.4.2:147)
at com.google.firebase.firestore.CollectionReference.document(com.google.firebase:firebase-firestore@@21.4.2:103)
at com.example.riseapp.ViewTask.deleteTasks(ViewTask.java:183)
at com.example.riseapp.ViewTask$3.onClick(ViewTask.java:113)
at android.view.View.performClick(View.java:6608)
at android.view.View.performClickInternal(View.java:6585)
at android.view.View.access$3100(View.java:785)
at android.view.View$PerformClick.run(View.java:25919)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
/// Функция удаления задачи
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deleteTasks();
}
});
}
public void deleteTasks() {
userId = mFirebaseAuth.getCurrentUser().getUid();
TaskList taskList = new TaskList();
taskId = taskList.getTaskID();
taskID.setText(taskId);
final Map<String, Object> myfields = new HashMap<>();
myfields.remove("taskName");
myfields.remove("startTime");
myfields.remove("endTime");
myfields.remove("taskDate");
myfields.remove("notes");
myfields.remove("priority");
myfields.remove("energy");
myfields.remove("taskTag");
DocumentReference noteRef = fStore.collection("usersData").document(userId).collection("tasks").document(taskId);
noteRef.set(myfields)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d("tag", "Task Deleted Successfully");
}
});
}