猿问

如何在firebase android中删除节点

您好,我如何使用 java 删除 fire_base 数据库中的节点?我试过这个方法,但没有用。此图像显示节点结构 节点结构


private void deleteTask (final String userName){


    final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");

    reference.orderByChild("userName").equalTo(userName).addListenerForSingleValueEvent(new ValueEventListener() {

        @Override

        public void onDataChange(DataSnapshot dataSnapshot) {

            for(DataSnapshot ds :dataSnapshot.getChildren()){

                String userName = (String) ds.child("userName").getValue();

                reference.child(userName).setValue(null);

            }

        }


        @Override

        public void onCancelled(@NonNull DatabaseError databaseError) {


        }



    });

}


呼啦一阵风
浏览 164回答 3
3回答

拉莫斯之舞

试试这个代码:private void deleteTask (final String userName){final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");reference.addListenerForSingleValueEvent(new ValueEventListener() {    @Override    public void onDataChange(DataSnapshot dataSnapshot) {        for(DataSnapshot ds :dataSnapshot.getChildren()){            ds.getRef().orderByChild("userName").equalTo(userName).removeValue();        }    }    @Override    public void onCancelled(@NonNull DatabaseError databaseError) {    }   });}

幕布斯6054654

这段代码对我有用  private void deleteTask (final String userName){    final DatabaseReference reference = FirebaseDatabase.getInstance().getReference("All_USER");    reference.addListenerForSingleValueEvent(new ValueEventListener() {        @Override        public void onDataChange(DataSnapshot dataSnapshot) {            for(DataSnapshot ds :dataSnapshot.getChildren()){                if(ds.child("NewUser").child("userName").getValue(String.class).equals(userName)){                    ds.child("NewUser").child("userName").getRef().removeValue();                }            }        }        @Override        public void onCancelled(@NonNull DatabaseError databaseError) {        }    });}

隔江千里

您可以像这样更改代码: @Override    public void onDataChange(DataSnapshot dataSnapshot) {         if (dataSnapshot.exists()) {                        for (snapshot in dataSnapshot.children) {                            snapshot.reference.removeValue()                        }                    }    }
随时随地看视频慕课网APP

相关分类

Java
我要回答