Ответ Дуга отлично подходит, когда вы хотите заполнить узел данными из класса POJO, в данном случае вашими ProjectName и Votes, но, как говорится в комментарии Фрэнка, если у вас были старые данные на этом узле до размещения нового, он будет перезаписан / удален с этого узла.
Например, если у вас это было на вашем узле
CountLikes:{
ProjectName: "MyAwesomeProject"
Votes: "100"
comments: 20 --> New data that you could add or have
flags: 0 --> New data that you could add or have
favorites: 30 --> New data that you could add or have
}
до выполнения этого
YourObject o = new YourObject();
o.ProjectName = "abcd";
o.Votes = 78;
mDatabaseLike.setValue(o);
Все этостарые данные, которые у вас были на этом узле, будут заменены на
CountLikes:{
ProjectName: "abcd"
Votes: "78"
}
Если вам нужно только обновить / изменить данные на этом конкретном узле, я бы предложил сделать это с HashMap
, потому что этопросто обновите значения внутри этого узла и не создавайте их заново и замените / удалите их, если у вас там уже были данные.
Продолжение ответа Дуга
class YourObject {
public String ProjectName;
public int Votes;
}
String projectName = "abcd";
int votes = 78;
Map<String,Object> mapData = new HashMap<>();
mapData.put("ProjectName",projectName);
mapData.put("Votes",votes);
mDatabaseLike.updateChildren(mapData).addOnCompleteListener(new OnCompleteListener<Void>(){
@Override
public void onComplete(@NonNull Task<Void> task){
//Data pushed succefully, update UI or do something else.
}
});
Это предотвратит воссоздание всего объекта.и просто заменив эти данные внутри вашего узла, я знаю, что вы запросили без HashMap, но я просто опубликую, почему это хороший выбор, если делать это таким образом.