"locs" : {
"-Lci8jGrXCEP-r6LBxD8" : {
"title" : "Marriage"
},
"-Lci9UNW80J2Jap_UHwj" : {
"title" : "Visit"
}
},
我的firebase实时数据库如下所示。我想在同一按键下添加其他三个值,即纬度,经度和地址。
mDatabase.child("users").child(mUserId).child("locs").push().child("title").setValue(text.getText().toString());
这在第一次活动中有效。在第二个活动中,我检索lat和long并将其分别保存在字符串lat和long中。现在,我希望将这两个值和addr保存在同一键下。
这是我的预期结果
"locs" : {
"-Lci8jGrXCEP-r6LBxD8" : {
"title" : "Marriage"
"lat" : "xxx.xxxxxx"
"long" : "xxx.xxxxxx"
"addr" : "Street 112 xxxx"
},
"-Lci9UNW80J2Jap_UHwj" : {
"title" : "Visit"
"lat" : "xxx.xxxxxx"
"long" : "xxx.xxxxxx"
"addr" : "Street 1212 Flat 6"
}
},
答案 0 :(得分:1)
您需要做两件事:
更新该密钥的位置,而不是生成新密钥。您可以通过调用set()
而不是child(key)
并使用push()
而不是Map<String, Object> values = new HashMap<String, Object>();
values.put("title", "new updated title");
values.put("newprop", "value of new prop");
mDatabase.child("users").child(mUserId).child("locs").child(key).updateChildren(values);
来做到这一点。因此:
{{1}}