我在问我开发应用程序时遇到的问题。我的目标是将包含其他子项的子项复制到不同的目录。我需要这样做的原因是因为在我的活动开始时我想获得用户朋友所做的所有帖子。我的问题是使用setValue我无法复制多个朋友的帖子,因为这会删除其他帖子。我的代码,
for (int i = 0; i<budsList.size();i++){
feedRef.child(current_user_id).setValue(dataSnapshot.child(budsList.get(i)).getValue());
}
这里的budslist是用户朋友的列表,我骑自行车浏览每个朋友,然后从不同的目录中抓取他们的所有帖子,并将它们添加到feed目录。问题是,当我与多个朋友这样做时,它将取消前一个朋友在循环中提供的最后一个数据,最后留下一个用户的帖子。有任何想法吗?谢谢你的任何答案。
答案 0 :(得分:1)
我认为您应该使用updateChildren()
代替setValue()
。这是文档link。
您的代码将如下所示,
HashMap<String,Object> map = new HashMap<>();
for(int i = 0; i<budsList.size();i++){
map.put(dataSnapshot.child(budsList.get(i)).getKey(),dataSnapshot.child(budsList.get(i)).getValue());
}
feedRef.child(current_user_id).updateChildren(map);