Как удалить из базы данных реального времени 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, он динамически создается, но я хочу удалить определенную запись из базы данных.