"locs" : {
"-Lci8jGrXCEP-r6LBxD8" : {
"title" : "Marriage"
},
"-Lci9UNW80J2Jap_UHwj" : {
"title" : "Visit"
}
},
我的 firebase 实时数据库如下所示。我想在同一个按键下添加其他三个值,即纬度、经度和地址。
mDatabase.child("users").child(mUserId).child("locs").push().child("title").setValue(text.getText().toString());
这适用于第一个 Activity 。在第二个 Activity 中,我检索经纬度并将其分别保存在字符串纬度和经度中。现在我希望将这两个值和地址保存在同一个键下。
这是我的预期结果
"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"
}
},
最佳答案
你需要做两件事:
- 确保第二个 Activity 知道要更新的 key 。您可以通过将 key 从第一个 Activity 传递到下一个 Activity (在 Intent 或共享首选项中),或者根据您知道其值的其他一些独特属性在第二个 Activity 中查找它来执行此操作。
更新该 key 的位置,而不是生成新 key 。为此,您可以调用
update()
而不是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);
关于java - 我想在同一个键下添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55738200/