Firebase вставляет вместо добавления - PullRequest
0 голосов
/ 29 марта 2020

У меня есть эта база данных в базе данных: Firebase database Предполагается, что она собирает голоса. У меня есть несколько категорий, таких как президент, министр ... et c. Все люди, которые v ie для места "президента" перечислены в списке с использованием их уникальных ключей, и я пытаюсь собрать электронные письма всех избирателей. Это мой код:

public static void insertvote(String userkey, String categ, String candId) {
       System.out.println("Returned candidate's userkey or ID: "+userkey);
      System.out.println("Returned category: "+categ);
            DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
            DatabaseReference totalVotesRef = rootRef.child("votes").child(categ).child(candId);
            Vote vote = new Vote(userkey);
            totalVotesRef.setValue(vote.getVoterEmail());
    }

Проблема, с которой я столкнулся, заключается в том, что когда другой пользователь входит в систему и голосует, а не добавляет свою электронную почту, он перезаписывается на существующую электронную почту. Как я могу решить это? Спасибо

1 Ответ

1 голос
/ 29 марта 2020

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

totalVotesRef.push().setValue(vote.getVoterEmail())

Каждое письмо будет отображаться под этим случайно сгенерированным дочерним значением.

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