Android firebase: ребенок перезаписывается при обновлении - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть структура базы данных, подобная этой:

       post
       |
       user1
       |
       user2
       |
       |-------title:"new title"
       |-------body: "new post" 
       |-------votes: 
                    |randomid:"value"

Итак, как вы можете видеть, у меня есть путь с именем post/ user1/ user2, под этим путем я сохраняю карту (ключ / значение), состоящую из 3 детей:

title: со значением строки.

body: со значением string.

голосов: со значением карты.

проблема

Дело в том, что я сохраняю голоса как (случайные идентификаторы) в votes, поэтому я хочу обновлять голоса при каждом нажатии кнопки с новым push-идентификатором при каждом нажатии кнопки.

Но проблема в том, что в моем случае значение 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"

Я ПОЛУЧИЛ

вместо этого, после трехкратного нажатия голосов:

            -----votes:
                    |random_id: "value"

Как решить эту проблему, чтобы добиться случая I EXPECTED ?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...