如何按键删除firebase中的一个项目我正在尝试这样的事情,但不适用于我



我的代码删除子配方中firebase中的一个项目该方法在点击一个项目时删除配方中的所有列表项目我认为因为对于循环,获取所有项目而不是特定项目并删除所有项目我不知道如何只删除列表键中的一项我去删除了一个键只点击一个按钮删除在此处输入图像描述

当点击删除按钮时,配方参考有两个键删除所有键而不是一个

holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder1 = new AlertDialog.Builder(view.getRootView().getContext());
builder1.setTitle("Delete post");
builder1.setMessage("Are you sure that you want delete the post?");
builder1.setCancelable(true);
builder1.setPositiveButton(
"Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, final int id) {
ref.child("recipe").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot uniqueKeySnapshot : dataSnapshot.getChildren()){
String skey = uniqueKeySnapshot.getKey();
uniqueKeySnapshot.child(String.valueOf(id)).child(skey).getRef().removeValue();                           //ref.child("recipe").child(skey).setValue(null);
dialog.cancel();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(mContext, "error !"+databaseError.getMessage(), Toast.LENGTH_SHORT).show();
}
});

dialog.cancel();
}
});
builder1.setNegativeButton(
"No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert11 = builder1.create();
alert11.show();
}
});

我在智利培根中做了一个循环,有一个清单食谱

屏幕截图中没有删除代码行。

reference2.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getRef.removeValue();
}
@Override
public void onCancelled(DatabaseError databaseError) {
//for database error
}
});

或者简单地说,

reference2.removeValue();

下次不要将代码作为图片发布。

只需执行此

reference2.child(YOUR_ITEM_KEY).setValue(null);

最新更新