如何在现有的 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?

如何在现有的 bios 中实现新功能?

如何在现有的 ios 测试项目中启用 xcode 7 UI 测试

如何在现有的 QSettings 文件中添加组