Как удалить отдельных детей из firebase в Android? - PullRequest
0 голосов
/ 18 марта 2019

Я прошел через различные ссылки и решения delete-child-from firebase , Как удалить дочерние узлы и попытаться использовать в моем проекте, но ничего не работает. Как перейти по ссылке Удаление дочерних узлов ,

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.child("calendario").child("-L7jrJ6DtQWrmZsC4zvT").removeValue();

работает на случай, когда ключ не сгенерирован, что не является моим случаем. Структура базы данных здесь.

enter image description here

Следующий фрагмент Кодекса предназначен для удаления отдельного ребенка, которого я пытался.Любая помощь приветствуется.

 delete.setOnClickListener(new View.OnClickListener() {
            @Override
        public void onClick(View view) {


            FirebaseDatabase ref = FirebaseDatabase.getInstance();
            DatabaseReference myRef = ref.getReference("Students");
            String key = myRef.push().getKey();
             myRef.child(key).removeValue(); 
        }
    });

Ответы [ 3 ]

1 голос
/ 18 марта 2019

Вы ничего не удаляете, потому что генерируете только новый ключ. Если вы хотите удалить существующий ключ, используйте следующую строку кода:

ref.getReference("Students").child("-LaFeagvdt-mLlc2eWeV").removeValue();

Результатом будет удаление второй записи.

1 голос
/ 18 марта 2019

Когда вы используете push(), вы генерируете новый случайный идентификатор, тогда когда вы используете removeValue() для этого ключа, это приведет к удалению этого ключа.

Если вы хотите удалить существующий ключ в вашей базе данных, вам нужно извлечь его из базы данных, чтобы иметь возможность использовать его с removeValue().

0 голосов
/ 18 марта 2019

Вам необходимо сохранить ключ дочернего элемента, который вы хотите удалить, в некоторой переменной.Давайте предположим, что это переменная keyToBeDeleted.

String keyToBeDeleted = "-LaFeagvdt-mLlc2eWeV";
 delete.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {


        FirebaseDatabase ref = FirebaseDatabase.getInstance();
        DatabaseReference myRef = ref.getReference("Students/" + keyToBeDeleted);
        myRef.removeValue();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...