Java ref.updateChildren()中的FirebaseException:路径X是更新中X/Y的祖先

Java ref.updateChildren()中的FirebaseException:路径X是更新中X/Y的祖先,java,android,firebase,Java,Android,Firebase,尝试在同一ref.updatechildren()操作中使用类似“users/user”和“users/user/name”的路径执行多路径写入时,应用程序崩溃,出现以下异常: com.firebase.client.FirebaseException:路径X是中X/Y的祖先 更新 在Firebase中执行这种多路径写入的最佳方法是什么?谢谢 编辑: 在这种情况下,我希望实现以下目标: HashMap<String, Object> userUpdate = new HashMap&

尝试在同一
ref.updatechildren()
操作中使用类似“
users/user
”和“
users/user/name
”的路径执行多路径写入时,应用程序崩溃,出现以下异常:

com.firebase.client.FirebaseException:路径X是中X/Y的祖先 更新

在Firebase中执行这种多路径写入的最佳方法是什么?谢谢

编辑: 在这种情况下,我希望实现以下目标:

HashMap<String, Object> userUpdate = new HashMap<String, Object>();
HashMap<String, String> user = new HashMap<String, String>();
user.put("firstName", "Ivan");
user.put("initialOfLastName", "V");

userUpdate.put("/user", user);
userUpdate.put("/user/gender", "male")

ref.updateChildren(userUpdate);
HashMap userUpdate=newhashmap();
HashMap用户=新建HashMap();
user.put(“firstName”、“Ivan”);
user.put(“lastname的缩写”,“V”);
userUpdate.put(“/user”,user);
userUpdate.put(“/user/gender”,“male”)
参考updateChildren(用户更新);

对于这种情况,您必须在要更新的位置的顶层使用嵌套的
HashMap

HashMap<String,String> userUpdate = new HashMap<String,String>();
userUpdate.put("firstName", "Ivan");
userUpdate.put("initialOfLastName", "V");
ref.child(uid).updateChildren(userUpdate);
HashMap userUpdate=newhashmap();
userUpdate.put(“firstName”、“Ivan”);
userUpdate.put(“lastname的缩写”,“V”);
ref.child(uid).updateChildren(userUpdate);

与错误状态类似,您不能为
/user
指定更新,然后为
/user/gender
指定其他更新。将性别更新移动到
用户
地图应该可以工作

user.put("firstName", "Ivan");
user.put("initialOfLastName", "V");
user.put("gender", "male")

userUpdate.put("/user", user);

ref.updateChildren(userUpdate);

通过编辑,Anid的答案是正确的。我还将撤回我的投票结果。:-)感谢您的回答,如果字段是字符串,那么这将起作用。对于复杂/嵌套数据,解决方案是将带有“性别”的映射作为写入路径。如果字段不是字符串,则使用
HashMap
而不是
HashMap