У меня есть структура базы данных, подобная этой:
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 ?
Спасибо.