Android firebase:我更新它时会覆盖孩子

时间:2018-04-24 13:38:04

标签: android firebase firebase-realtime-database

我有这样的数据库结构:

       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 案例?

感谢。

0 个答案:

没有答案