Gabriel assenga:
¿Cómo puedo actualizar un valor en una clave existente en la base de datos de base de fuego de androide. En mi caso quiero usuario actualizar las claves Votos
final long z=0;
Map<String,Object> taskMap = new HashMap<String,Object>();
taskMap.put("Votes", z);
FirebaseDatabase.getInstance().getReference()
.child("project_image").child(projectDate)
.child("Votes")
.updateChildren(taskMap);
Probé los códigos anteriores, pero en vez de eso añado otro nodo
FirebaseDatabase.getInstance().getReference()
.child("project_image")
.child(formattedDate)
.push().setValue(dataMap);
Los códigos anteriores se usaron para insertar datos en la primera vez
¿Cómo puedo realizar esta tarea
Peter Haddad:
Es necesario tener acceso a la clave también:
final long z=0;
Map<String,Object> taskMap = new HashMap<String,Object>();
taskMap.put("Votes", z);
FirebaseDatabase.getInstance().getReference().child("project_image")
.child(projectDate).child("-M3zLjPHM_ndBfBDLV9C")
.child("Votes")
.updateChildren(taskMap);
Para obtener la clave:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference();
reference.child("project_image").child(projectDate).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String key = datas.getKey();
final long z=0;
Map<String,Object> taskMap = new HashMap<String,Object>();
taskMap.put("Votes", z);
FirebaseDatabase.getInstance().getReference().child("project_image")
.child(projectDate).child(key)
.child("Votes")
.updateChildren(taskMap);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});