inserción Firebase overwites en lugar de añadir

Ngugi Kariuki:

Tengo esta estructura de base de datos en base de fuego: base de datos de base de fuegoSu supone que califican a cobro revertido. Tengo varias categorías como presidente, ministro ... etc. Todas las personas que compiten por un asiento "Presidente" se enumeran utilizando sus claves únicas, y estoy tratando de recopilar todos los correos electrónicos de los votantes. Este es mi código:

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());
    }

El problema que tengo es que, cuando otro usuario inicia sesión y votos, en lugar de añadir su correo electrónico, que sea overwritter al correo electrónico existente. ¿Cómo puedo resolver esto? Gracias

Doug Stevenson:

En lugar de utilizar setValue()en el lugar a los correos electrónicos de cobro revertido, que siempre sobrescribe los datos existentes, usted debe buscar en el uso de push()la primera, lo que genera un nuevo niño utilizando un ID aleatorio. Usted tendrá que familiarizarse con la documentación acerca de las listas de datos, especialmente añadiendo a una lista de datos .

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

Cada correo electrónico aparecerá debajo de ese valor generado aleatoriamente niño.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=371093&siteId=1
Recomendado
Clasificación