2016-09-17 5 views
1

は、私は次のようなデータベースがあります。firebaseデータベースでどのように検索(SELECTとWHERE)しますか?

{ 
    "message" : "Hello, World!", 
    "reserva" : [ null, { 
     "codreserva" : 123, 
     "email" : "[email protected]", 
     "status" : "check in" 
    }, { 
     "codreserva" : 124, 
     "email" : "[email protected]", 
     "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を印刷したいです。期待どおりに動作するコードの場合

+3

あなたの質問にJSONツリーの画像が含まれています。 Firebaseデータベースコンソールの[エクスポート]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

答えて

1

、あなたはこのように、データ構造を少し変更する必要があります。

{ 
    "reserva": { 
     "123": { 
      "email" : "[email protected]", 
      "status" : "check in" 
     }, 
     "124": { 
      "email" : "[email protected]", 
      "status" : "check out" 
     } 
    } 
} 

これはあなたのケースでそれを行うには正しい方法であり、ほとんどの時間実際にIDをキー値として、配列からオブジェクトに変更しています。

+0

ハイメ、ご協力いただきありがとうございます。しかし、それは私が[email protected]電子メールでcodreservaと思うように私を助けることができますか? –

+0

私はあなたの質問を理解しているかどうか分かりませんが、あなたはあなたが登録した電子メールに基づいて予約を見つけることを容易にする 'reserva'キーとして電子メールを使うことができます:D –

+0

JaimeGómez、ごめんなさい。あなたが私に与えた構造から。自分の電子メールでCODRESERVAを探したい場合、どうすればいいですか? –

関連する問題