从Firebase数据库中删除特定值

Kyl*_*zon 5 java android firebase firebase-realtime-database

我已经跟着 这个了.但不幸的是,当我删除具有SAME值的数据时,它也会被删除.我想只删除一个数据.

这是我的数据库结构. 这是我的数据库.

我想只删除一个值.

Query query = databaseReference.orderByChild("address").equalTo(tvPatientAddress.getText().toString());

                        query.addChildEventListener(new ChildEventListener() {
                            @Override
                            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                                dataSnapshot.getRef().setValue(null);
                            }

                            @Override
                            public void onChildChanged(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onChildRemoved(DataSnapshot dataSnapshot) {

                            }

                            @Override
                            public void onChildMoved(DataSnapshot dataSnapshot, String s) {

                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
Run Code Online (Sandbox Code Playgroud)

我有这个代码

你们有什么想法吗?我认为最好的方法是获取患者的ID并删除该数据,因为ID是唯一的.任何帮助赞赏!

Ati*_*Asi 20

首先获取该值然后将其删除.如果你不知道该对象的关键所有你需要做的就是查询,然后获得该对象重点从 DataSnapshot. 使用getKey() method像postsnapshot.getKey()

或者查看我的Firebase Helper Class Tutorial

mdatabaseReference.child("users").orderByKey().equalTo(uid).addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot dataSnapshot) {

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

    String key = postsnapshot.getKey();
    dataSnapshot.getRef().removeValue();

 }
Run Code Online (Sandbox Code Playgroud)