我有一个使用listView的待办事项列表应用程序,我可以设法向Firebase发送“任务”,然后在我的应用程序中显示它,但我无法从Firebase中删除特定任务。
我尝试使用.push()
方法将数据发送到firebase,但是我无法设法检索它,因此现在使用.setValue()
。我正在使用任务标题作为Firebase中的子对象,这就是我要删除的内容。
Intent myIntent = getIntent();
String email = myIntent.getExtras().getString("email");
public void addToDoElement(View view) {
String title = mTitle.getText().toString();
String content = mContent.getText().toString();
task friendlyTask = new task(title, content);
mTasksDatabaseReference = mFirebaseDatabase.getReference().child(email).child("tasks").child(title);
mTasksDatabaseReference.setValue(friendlyTask);
}
public void deleteTask(View view) {
TextView itemTitle = findViewById(R.id.task_title);
String childToDelete = itemTitle.getText().toString();
Toast.makeText(getApplicationContext(), "Deleted task: " + childToDelete, Toast.LENGTH_SHORT).show();
mTasksDatabaseReference.child(email).child("tasks").child(childToDelete).setValue(null); //I am trying to delete the task title from firebase so that the entire task will be removed
这就是火力场的样子。例如,当我尝试删除第二个任务(任务标题2)时,什么也没发生
答案 0 :(得分:0)
您应该使用
mTasksDatabaseReference.child(email).child("tasks").child(childToDelete).removeValue();
代替 setValue(null)
答案 1 :(得分:0)
在addToDoElement
中,您将mTasksDatabaseReference
初始化为:
mTasksDatabaseReference = mFirebaseDatabase.getReference().child(email).child("tasks").child(title);
然后,您使用mTasksDatabaseReference
中的deleteTask
删除子级。
mTasksDatabaseReference.child(email).child("tasks").child(childToDelete).setValue(null);
但是由于您已经将mTasksDatabaseReference
设置为对特定任务的引用,所以您现在正试图指向另一个任务下的任务。
public void deleteTask(View view) {
TextView itemTitle = findViewById(R.id.task_title);
String childToDelete = itemTitle.getText().toString();
Toast.makeText(getApplicationContext(), "Deleted task: " + childToDelete, Toast.LENGTH_SHORT).show();
FirebaseDatabase.getInstance().getReference()
.child(email).child("tasks").child(childToDelete).setValue(null);
}
答案 2 :(得分:0)
我用过
private void deleteOrder(String key) {
requests.child(key).removeValue();
adapter.notifyDataSetChanged();
}
请求是数据库引用,适配器是Firebase Recycler适配器