Я просто не могу удалить конкретную запись из моей Firebase: Изображение базы данных Firebase
Она всегда удаляет всю базу данных.
Я пробовал эти коды:
fun removeLobbyFromDatabase() {
// lobbyId is string value of the key
val query = db.child(lobbyId)
query.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
snapshot.ref.removeValue()
}
override fun onCancelled(p0: DatabaseError) {}
})
}
и
fun removeLobbyFromDatabase() {
val ref = db.ref
ref.child(lobbyId).removeValue()
}
(но тогда ничего не происходит)
fun removeLobbyFromDatabase() {
db.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
snapshot.children.forEach { lobby -> if (lobby.key == lobbyId) lobby.ref.removeValue() }
}
override fun onCancelled(p0: DatabaseError) {}
})
}
Откуда дБ отсюда (я используюКинжал 2):
@Provides
@Singleton
fun getFirebaseRef(): DatabaseReference =
FirebaseDatabase.getInstance().getReference("lobbies")
Как я могу только удалить лобби (запись) и не всю базу данных?
>>> РЕДАКТИРОВАТЬ, РЕШЕНО <<< </strong>
Это очень смущает, но я заметил в отладчике, что obbyId был пуст.Затем я понял, что очистил эту строку в другом месте.Я был слишком уверен в этом.В любом случае, спасибо людям за то, что они приложили усилия, и этот код отлично сработал после решения моей ошибки:
fun removeLobbyFromDatabase() = db.child(lobbyId).removeValue()
Итак, если вы читаете здесь и столкнулись с той же проблемой, обязательно отлаживайте!