Java 如何通过嵌套数据删除firebase中的父级?

Java 如何通过嵌套数据删除firebase中的父级?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,这些数据进入数据库 { "Markers" : { "brTRf3EfqzaWuaw0q42Ay8Jnj0F3" : { "-M5Tp8BZpUkJSbmV4Qya" : { "date" : "22, апр., 2020", "latitude" : "53.9150522051367", "longitude" : "27.440601512789726", "permission" : false,

这些数据进入数据库

{
  "Markers" : {
    "brTRf3EfqzaWuaw0q42Ay8Jnj0F3" : {
      "-M5Tp8BZpUkJSbmV4Qya" : {
        "date" : "22, апр., 2020",
        "latitude" : "53.9150522051367",
        "longitude" : "27.440601512789726",
        "permission" : false,
        "time" : "01:21"
      },
      "-M5XhMon2UZiD6M_Zbp5" : {
        "date" : "22, апр., 2020",
        "latitude" : "53.914562076017575",
        "longitude" : "27.441855780780315",
        "permission" : false,
        "time" : "19:25"
      }
    }
  }
}
以用户的第一个条目为例:brTRf3EfqzaWuaw0q42Ay8Jnj0F3

他和他的父母在地图上做了一个标记: “-M5Tp8BZpUkJSbmV4Qya” 它包含一个带有时间数据的记录: “时间”:“01:21”

实际上,问题是: 如何删除父记录
“-M5Tp8BZpUkJSbmV4Qya”通过在其中记录时间???

要根据查询删除父级,请执行以下操作:

DatabaseReference markerRef = FirebaseDatabase.getInstance().getReference().child("Markers");
markerRef.child("brTRf3EfqzaWuaw0q42Ay8Jnj0F3").orderByChild("time").equalTo("01:21").addListenerForSingleValueEvent(new ValueEventListener() {
         @Override
      public void onDataChange(DataSnapshot dataSnapshot) {
          for(DataSnapshot data: dataSnapshot.getChildren()){
               data.getRef().removeValue();
                  }
            }

        @Override
       public void onCancelled(DatabaseError databaseError) {
                   throw databaseError.toException();
               }
          });
首先添加对节点的引用
brTRf3EfqzaWuaw0q42Ay8Jnj0F3
,然后使用
orderByChild(“time”).equalTo(“01:21”)
可以创建一个查询来检索包含上述时间的节点。然后在
快照
中迭代,并使用
getRef()
可以获取对该快照的源位置的引用