gabriel assenga:
Comment puis - je mettre à jour une valeur dans une clé existante dans la base de données firebase à partir d' Android. Dans mon cas , je veux l' utilisateur de mettre à jour les clés Votes
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);
J'ai essayé les codes ci-dessus mais il ajoute un autre noeud
FirebaseDatabase.getInstance().getReference()
.child("project_image")
.child(formattedDate)
.push().setValue(dataMap);
Les codes ci-dessus ont été utilisés pour insérer des données à la première fois
Comment puis-je effectuer cette tâche
Peter Haddad:
Vous devez accéder à la clé aussi:
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);
Pour obtenir la clé:
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();
}
});