Возникли проблемы с удалением узла в базе данных firebase

У меня возникли проблемы с удалением узлов в Firebase

Возникли проблемы с удалением узла в базе данных firebase

Вот как я загружаю свои данные

BigBoy add = new BigBoy(addCate);
          myRef.push().setValue(add);

Вот как я пытаюсь удалить свои данные

    databaseReference = FirebaseDatabase.getInstance().getReference().child("message");
        myRef = database.getReference("message");
String sfasf = Utils.object.getSfasf();
DatabaseReference remove  = FirebaseDatabase.getInstance().getReference("message").child(sfasf);
               remove.removeValue();

Но проблема в том, что узел не удаляется.

0
0
278
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Сделайте свой вызов firebase следующим образом:

DatabaseReference reference = FirebaseDatabase.getInstance().getReference("message");

reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for(DataSnapshot dataSnapshots : dataSnapshot.getChildren()){

           if (dataSnapshots.child("sfasf").exists()) {
                    dataSnapshots.child("sfasf").removeValue();
           } 

        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }


});

Все равно не удаляет данные

K. Lok 29.06.2019 06:25

Проверка вопроса

Anupam 29.06.2019 07:14

Это все еще не работает, выдает ошибку. Попытка вызвать виртуальный метод java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' для ссылки на нулевой объект, вероятно, потому, что я не использую аутентификацию Firebase . Даже если я удалю этот узел, он все равно не будет удален.

K. Lok 29.06.2019 15:12

База данных FirebaseDatabase = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("сообщение").child(); myRef.child(sfasf).removeValue()

Anupam 29.06.2019 15:18

Попробуйте это один раз и проверьте

Anupam 29.06.2019 15:18

Он по-прежнему не удаляет данные, я забыл что-то добавить в консоль Firebase?

K. Lok 30.06.2019 19:51

Подождите некоторое время, проверьте еще раз

Anupam 30.06.2019 19:53

Если вы хотите удалить узел из id, вы можете использовать dataSnapshot.removeValue(); внутри условия if

Anupam 30.06.2019 20:28

Он говорит, что не может разрешить метод removeValue в dataSnapshot.child("sfasf").removeValue();, и выдает странную ошибку, говорящую о том, что вам нужна точка с запятой в операторе for, которую я не мог исправить

K. Lok 30.06.2019 20:52

Попробуйте обновленную. Не волнуйтесь, мы заставим это работать

Anupam 30.06.2019 21:04

я жду вашего ответа

Anupam 30.06.2019 21:04

Мы сделаем это как можно скорее, просто побудьте некоторое время в stackoverflow.

Anupam 30.06.2019 21:05

Я все еще получаю сообщение об ошибке, которое не может разрешить removeValue в dataSnapshot.child("sfasf").removeValue();

K. Lok 30.06.2019 21:55

Попробуйте это внутри, если условие -

Anupam 30.06.2019 22:13

dataSnapshot.removeValue();

Anupam 30.06.2019 22:13

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

K. Lok 30.06.2019 22:19

добавление datasnapshot.getRef().removevalue(); позволяет использовать removevalue, но удаляет все значения из моей базы данных

K. Lok 30.06.2019 22:29

Поскольку ваш getRef является узлом сообщения

Anupam 01.07.2019 04:09

Это все еще не работает, у вас есть какие-либо другие советы?

K. Lok 01.07.2019 19:18

1) У вас есть эталонный объект, но вы его не используете. Вы создали 2 ссылки на переменные и не используете их.

2) Ваш код неверен, для того, чтобы удалить узел, вы должны указать ключ

myRef = database.getReference("message");
myRef.child(key).remove();

---редактировать---

попробуй это

myRef.child(key).removeValue();

---редактировать---

Из официальной документации:

The simplest way to delete data is to call removeValue() on a reference to the location of that data. You can also delete by specifying null as the value for another write operation such as setValue() or updateChildren(). You can use this technique with updateChildren() to delete multiple children in a single API call.

Не удаляет данные

K. Lok 30.06.2019 19:51
Ответ принят как подходящий

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

Другие вопросы по теме