Firebase 在不删除的情况下更新嵌套数据



出于某种原因,在我的数据库上调用updateChildren会擦除当前位于那里的所有数据。JSON 树如下所示

{
"user1" : {
"messages" : {
"-message1" : true
},
"userId" : "value"
}
}

我正在尝试在消息 2 下插入消息 1,但是,它所做的只是用消息 1 替换消息 2

fun addToCurrentUser() {
val user = Firebase.auth.currentUser
val id = user?.uid
val map: MutableMap<String, Any> = HashMap()
map.put(message.getId(), true)
root.child("users/" + id + "/messages/").updateChildren(map)
}

如果要在已知位置添加新数据,可以直接在路径上使用 setValue((,而不考虑路径中的其他任何内容。

root
.child("users")
.child(id)
.child("messages")
.child(message.getId())
.seValue(true)

如果以任何节点为目标进行更新,则将替换该位置下的所有内容,因此最好以尽可能深的目标为目标以进行所需的更改。

最新更新