Java Firebase删除子按钮单击

Java Firebase删除子按钮单击,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我的问题是我不能从firebase数据库中删除一个子项,要么什么都不发生,要么删除整个子项和所有数据。我环顾四周,尝试了多种解决方案,但无论出于何种原因,我的方案都不起作用,我不知道为什么 感谢您的帮助 Java类 //get data passed from viewpasswords and put them into textviews name.setText(getIntent().getExtras().getString("data")); pass

我的问题是我不能从firebase数据库中删除一个子项,要么什么都不发生,要么删除整个子项和所有数据。我环顾四周,尝试了多种解决方案,但无论出于何种原因,我的方案都不起作用,我不知道为什么

感谢您的帮助

Java类

//get data passed from viewpasswords and put them into textviews
        name.setText(getIntent().getExtras().getString("data"));
        password.setText(getIntent().getExtras().getString("pass"));

        //get current user id and reference to database
        final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
        assert user != null;
        userID = user.getUid();
        dbRef = FirebaseDatabase.getInstance().getReference();


        //button onclick stuff
        delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DeleteData();
            }
        });

        exit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(DecryptPassword.this, ViewPasswords.class);
                startActivity(intent);
            }
        });

    }

    private void DeleteData() {
        final String passName = name.getText().toString();
        Query query = dbRef.child("Passwords").child(userID).orderByChild("PasswordName").equalTo(passName);

        query.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                if(dataSnapshot.getChildrenCount() > 0){
                    for(DataSnapshot itemSnapshot : dataSnapshot.getChildren()){
                        dataSnapshot.getRef().removeValue();
                        Toast.makeText(DecryptPassword.this, "Success", Toast.LENGTH_SHORT).show();
                        Intent intent = new Intent(DecryptPassword.this, ViewPasswords.class);
                        startActivity(intent);
                    }
                }else{
                    Toast.makeText(DecryptPassword.this, "Failed to delete", Toast.LENGTH_SHORT).show();
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(DecryptPassword.this, "Error occurred sorry", Toast.LENGTH_SHORT).show();
            }
        });
    }
Firebase数据库:

谢谢

dataSnapshot.getRef().removeValue();
将此部分更改为:

itemSnapshot.removeValue();