我有这样的数据库结构:
post
|
user1
|
user2
|
|-------title:"new title"
|-------body: "new post"
|-------votes:
|randomid:"value"
因为你可以看到我有一个名为post/ user1/ user2
的路径,在这条路径下我保存了一个由3个孩子组成的地图(键/值):
title:带有字符串值。
body:值为string。
票:具有地图的价值。
问题
这里的事情是我将投票保存为votes
下的(随机ID),因此我希望每次点击一个按钮时更新投票,并在每次点击按钮时使用新的推送ID。
但问题是,在我的情况下,votes
值被覆盖而不是被推送。
我尝试了什么
//on vote button click
//generate a push id
DatabaseReference push = FirebaseDatabase.getInstance().getReference().push();
String push_id = push.getkey();
//votes map
Map votes_map = new HashMap();
votes_map.put(push_id , "value");
//post map
Map post_map = new HashMap();
post_map.put("title","new title");
post_map.put("body", "new post");
post_map.put("votes", votes_map);
//path
Map path = new HashMap();
path.put("post/user1/user2", post_map);
//update
DatabaseReference root = FirebaseDatabase.getInstance().getReference();
root.updateChildren(path);
我预计
如果我点击投票3次,我应该在votes
:
-----votes:
|random_id: "value"
|random_id: "value"
|random_id: "value"
我GOT
这次点击了3次之后的选票:
-----votes:
|random_id: "value"
如何解决这个问题才能实现 I EXPECTED 案例?
感谢。