gpt4 book ai didi

java - 在 Firebase (Android) 中同时更新多个节点中的多个字段

转载 作者:行者123 更新时间:2023-11-29 08:22:44 24 4
gpt4 key购买 nike

我正在尝试使用 Maps 和 Update children 更新不同节点中的多个字段,但是 firebase 正在删除各个节点中的数据并添加数据。我希望更新数据并且之前的数据保持不变。有趣的是,该逻辑在更新同一节点中的 2 个字段时起作用,但在引入多个节点时不起作用。请看下面的代码。

我不是要创建新字段,而只是同时更新 2 个不同节点中的 2 个现有字段。每个节点都有 10 个不同的字段,我想保留这些字段。

我在 viewholder.button 中调用它(在回收器 View 适配器中)

String ref1 = "users/" + currentUserId;
String ref2 = "user_detail_profile/" + currentUserId;

HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);

HashMap<String, Object> updateFbDb2 = new HashMap<>();
updateFbDb2.put("claps", 55);
updateFbDb2.put("comments", 21);

HashMap<String, Object> updateFbDb3 = new HashMap<>();

updateFbDb3.put(ref1, updateFbDb1);
updateFbDb3.put(ref2, updateFbDb2);

fbDbRefRoot.updateChildren(updateFbDb3);

这是行得通的,但我想一次完成,这样一个成功的监听器就可以全部附加或不附加。

HashMap<String, Object> updateFbDb1 = new HashMap<>();
updateFbDb1.put("name", "Albert Einstein");
updateFbDb1.put("score", 23);

HashMap<String, Object> updateFbDb2 = new HashMap<>();
updateFbDb2.put("claps", 55);
updateFbDb2.put("comments", 21);

fbDbRefRoot.child("users").child(currentUserId).updateChildren(updateFbDb1);
fbDbRefRoot.child("user_detail_profile").child(currentUserId).updateChildren(updateFbDb2);

最佳答案

以下解决方案基于@Alex Mamos 的建议正在运行...

Map<String, Object> map = new HashMap<>();
map.put("/users/" + currentUserId + "/name/", "Albert Einstein");
map.put("/users/" + currentUserId + "/score/", 23);
map.put("/user_detail_profile/" + currentUserId + "/claps/", 45);
map.put("/user_detail_profile/" + currentUserId + "/comments/", 8);
fbDbRefRoot.updateChildren(map);

以某种方式在 map 中插入 map 不起作用。这一切都必须是大 map 的一部分。

关于java - 在 Firebase (Android) 中同时更新多个节点中的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56142170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com