如何在firebase数据库中搜索(SELECT和WHERE)?

时间:2016-09-17 00:21:58

标签: android firebase firebase-realtime-database

我有一个如下数据库:

{
    "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

1 个答案:

答案 0 :(得分:1)

要使代码按预期工作,您需要稍微更改一下数据结构,如下所示:

{
    "reserva": {
        "123": {
             "email" : "teste@teste.com",
             "status" : "check in"
        },
        "124": {
             "email" : "fabio@ciaf.com.br",
             "status" : "check out"
        }
    }
}

这是在你的情况下做到这一点的正确方法,而且大部分时间都是这样。我们将其从数组更改为以ID为关键值的对象。