我有一个如下数据库:
{
"message" : "Hello, World!",
"reserva" : [ null, {
"codreserva" : 123,
"email" : "teste@teste.com",
"status" : "check in"
}, {
"codreserva" : 124,
"email" : "fabio@ciaf.com.br",
"status" : "check out"
} ]
}
我有代码来搜索reserva
的状态:
public void ProcuraReserva(String codigodareserva){
// Read from the database
myRef = database.getReference("reserva/"+codigodareserva+"/status");
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
textview1.setText("Status da reserva "+ value);
}
@Override
public void onCancelled(DatabaseError error) {
textview1.setText("Status com falha");
}
});
}
假设codigodareserva == 124
我希望此功能打印check out
。
答案 0 :(得分:1)
要使代码按预期工作,您需要稍微更改一下数据结构,如下所示:
{
"reserva": {
"123": {
"email" : "teste@teste.com",
"status" : "check in"
},
"124": {
"email" : "fabio@ciaf.com.br",
"status" : "check out"
}
}
}
这是在你的情况下做到这一点的正确方法,而且大部分时间都是这样。我们将其从数组更改为以ID为关键值的对象。