如果我使用以下方法删除值,则删除随机值,我只想删除所选值
swipeController = new SwipeController(new SwipeControllerActions() {
@Override
public void onRightClicked(int position) {
firebaseRecyclerAdapter1.notifyItemRemoved(position);
firebaseRecyclerAdapter1.notifyDataSetChanged();
mDataRef = FirebaseDatabase.getInstance().getReference().child("OrderItemsList").child(gg);
mDataRef.child(d).removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
FancyToast.makeText(getApplicationContext(), "Removed Item", FancyToast.LENGTH_LONG, FancyToast.ERROR, R.drawable.ic_clear_black_24dp).show();
firebaseRecyclerAdapter1.notifyDataSetChanged();
firebaseRecyclerAdapter1.startListening();
}
}
});
答案 0 :(得分:1)
您似乎正在使用FirebaseUI的适配器。在这种情况下,您可以使用以下方法在DatabaseReference
上获得节点position
:
mDataRef = firebaseRecyclerAdapter1.getRef(position);
然后您可以使用以下方法删除该引用处的数据:
mDataRef.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
...
答案 1 :(得分:0)
您需要指定要删除的项目。例如,在您的情况下,应为:
mDataRef = FirebaseDatabase.getInstance().getReference().child("OrderItemsList");
mDataRef.child("Egg Rice").removeValue().addOnCompleteListener.. // and the rest..
这是没有代码的情况:OrderItemsList -> Egg Rice
子级。