【发布时间】:2020-12-17 11:18:12
【问题描述】:
我试图找到有关以下问题的答案 - 在类似的问题中找到了几个但仍然无法解决。如果我将结构展平,它似乎可以工作,但为什么呢?
基本上 - 我如何在 Firebase 的 json 对象中添加更多键值对而不覆盖现有键值对?
假设我有以下 jsonstructure
"groups" : {
"aw" : {
"members" : {
"Lisa" : "true"
},
"name" : "aw university"
}
}
然后如何在成员中添加更多键值对而不覆盖现有键值对?例如,我想再添加一个成员 - Magnus,这样对象就变成了:
"groups" : {
"aw" : {
"members" : {
"Lisa" : "true",
"Magnus" : "true"
},
"name" : "aw university"
}
}
我尝试过 updateChildren 没有成功:
var hm = HashMap<String, Any>()
hm.put("magnus", "true");
database.child("groups").child("aw").child("members").updateChildren(hm)
发生的情况是现有的键值(Lisa: true)被覆盖
这个问题有简单的解决方案吗?
奇怪的是,如果结构被展平 - updateChildren 工作并添加 Magnus
"groups" : {
"aw" : {
"name" : "aw university"
},
"members" : {
"Lisa" : "true",
"Magnus" : "true"
}
}
但我希望“members”成为“aw”的孩子
【问题讨论】:
-
第一行应该完全符合您的要求,因为它与
database.child("groups").child("aw").child("members").child("magnus").setValue(true)完全相同。你确定你在正确的节点上调用它吗?有什么方法可以添加更多调试信息来显示正在发生的事情?
标签: android json kotlin firebase-realtime-database