如何在现有的 Firebase json 结构下添加子节点?
Posted
技术标签:
【中文标题】如何在现有的 Firebase json 结构下添加子节点?【英文标题】:How to add child node under the existing Firebase json structure? 【发布时间】:2017-12-02 16:35:51 【问题描述】:我正在开发 android 项目,我在注册时保存了详细信息(电子邮件、密码、名称、mob、用户类型、用户 ID),现在我必须在现有结构中添加额外的详细信息,例如 long、lat 和 address每个用户。下面是我的 Firebase 结构的图片,在棕色线的帮助下,我提到了我想添加细节的确切位置。
【问题讨论】:
【参考方案1】:要更新/设置对象的特定文件,您可以关注dedicated documentation section
你的代码应该是这样的
private void setUserData(String userId, double lat, double lng)
Map<String, Object> userUpdates = new HashMap<>();
userUpdates.put("/users/" + userId + "/name_you_want/address", "Groove Street 2");
userUpdates.put("/users/" + userId + "/name_you_want/lat", lat);
userUpdates.put("/users/" + userId + "/name_you_want/lng", lng);
mDatabase.updateChildren(userUpdates, /*Add a complete listener if wanted*/);
编辑:为避免多余的 id,您只需指定节点名称,只需替换“name_you_want”
【讨论】:
它只是添加了另一个节点。如图所示。很抱歉打扰您。不像我想要的那样。 我不确定你想要实现什么,你想要一个名为 extra 的用户内部的属性,嵌套在地址、纬度和经度 3 个字段中?像这样"-Knn-Un-JZ94ZIj5sOVfaddclose": "extra": "address":"Street Test n 3", "lat":12.5, "lng":45.2 , "name":"Test User"
是的,这正是我想要的。但它在这三个值下添加了另一个具有单独 id 的节点。我想要的是这样的数据库用户 38b0a80e-ea98-4dc6-880e-efe416ca9818 电子邮件:“star@gmail.com” 手机号码:“9876543210” 密码:“Pass@123” 用户 ID:“38b0a80e-ea98-4dc6-880e-efe416ca9818 " userName: "star" userType: "Customer" -KnnSdC_m3gLDhjFT2SI 地址: "" lan: "" lon: ""
这里的 userId 是什么意思?因为我正在使用 FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();用于获取当前登录的用户,它将为当前用户添加详细信息。我想如果我可以获得当前登录用户的用户 ID,我可以在该特定节点下添加额外的值。
好的,用钥匙我也无法实现我想要的。它将节点添加为 "-Kns-...": "32s4r24..": 两种方式以上是关于如何在现有的 Firebase json 结构下添加子节点?的主要内容,如果未能解决你的问题,请参考以下文章
jQuery - 在现有的 each() 事件中嵌套另一个 each() 循环不起作用
pandas如何在现有的Excel表格上新建工作表并添加dataframe
如何在现有的基于 Storyboard 的项目中设置 @EnvironmentObject?