这是消息模型类
allTestCoverageFile
我正在尝试使用setter方法
更新消息密钥的特定值(Last值)这是我的代码
public class MessModel {
String message;
public MessModel() {}
public MessModel(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
我不知道为什么setter方法不起作用? 什么是所有孩子的setValue的最佳方式?或具体的setValue?
答案 0 :(得分:2)
要解决此问题,请使用以下代码:
Query lastmess = FirebaseDatabase.getInstance().getReference("Messages").child(my_Id).child(sendUID);
lastmess.orderByKey().limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataa) {
for (DataSnapshot snap : dataa.getChildren()) {
MessModel messages = snap.getValue(MessModel.class);
String mes = messages.getMessage(); //here I can get the last message
messages.setMessage("updated Message");
snap.getRef().setValue(messages);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
使用String类可以更简单地完成:
Query lastmess = FirebaseDatabase.getInstance().getReference("Messages").child(my_Id).child(sendUID);
lastmess.orderByKey().limitToLast(1).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataa) {
for (DataSnapshot snap : dataa.getChildren()) {
snap.child("message").getRef().setValue(updated Message);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
答案 1 :(得分:0)
用以下代码替换该setMessage调用:
mDatabase.child("theChildYouWantToSetTheValueFor").setValue("updated Message");