как убрать родителей в firebase по его вложенным данным? - PullRequest
0 голосов
/ 30 апреля 2020

такие данные поступают в базу данных

{
  "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", записав в нее время ???

1 Ответ

1 голос
/ 30 апреля 2020

Чтобы удалить родительский элемент в соответствии с запросом, выполните следующие действия:

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"), вы можете создать запрос для извлечения узла который содержит вышеуказанное время. Затем выполните итерации внутри snapshots и, используя getRef(), вы можете получить ссылку на исходное местоположение для этого снимка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...