Как удалить из базы данных реального времени firebase?

Я использую базу данных Firebase реального времени в приложении для Android и имею следующие данные: введите описание изображения здесь

Как я могу удалить запись "Apple" (отмечена на картинке)?

В соответствии с документами, чтобы удалить элемент, который вы вызываете removeValue() в ссылке. Но для получения ссылки мне нужен дочерний id. Поскольку его случайный сгенерированный id (-KISNx87aYigsH3ILp0D), как его удалить?

Ответы

Ответ 1

Если вы не знаете ключ для удаляемых элементов, вам сначала нужно запросить базу данных, чтобы определить эти ключи:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
Query applesQuery = ref.child("firebase-test").orderByChild("title").equalTo("Apple");

applesQuery.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot appleSnapshot: dataSnapshot.getChildren()) {
            appleSnapshot.getRef().removeValue();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Log.e(TAG, "onCancelled", databaseError.toException());
    }
});

Ответ 2

это решило мою проблему

 mPostReference = FirebaseDatabase.getInstance().getReference()
                        .child("quotes").child(mPostKey);
                mPostReference.removeValue();

Ответ 3

В зависимости от того, как и почему вы удаляете данные, вы можете их использовать:

// Could store the push key or get it after push
String newPostKey = yourDatabase.child('firebase-test').push({
    something:something
}).key();

// Depends how you get to here
howYouGotHereId.parent().setValue(null);

Firebase Save Data 3.0

Ответ 4

Если вы используете firebase-admin, вы можете просто попробовать это как

admin.ref('/users/${userid}').remove()

и это работает для меня.

А также не забудьте использовать async синтаксис и await.

Ответ 5

Вы можете использовать этот код:

onDeletePost(id:string){
return this.http.delete('https://my-angular8-prjt.firebaseio.com/posts/${id}.json').subscribe();
}

Ответ 6

Извините за то, что вы вошли в раздел "Ответ". Но у меня есть аналогичный вопрос, что если, например, [-KISNx87aYigsH3ILp0D], это node базы данных, а не ребенок теста firebase, и я хочу удалить, на данный момент "яблоко", как я могу это сделать. Поскольку я не знаю дочернего node name coz, он динамически создается, но я хочу удалить определенную запись из базы данных.