The Realtime database does not support multiple offers, but you can create an additional key to make this possible.
The flight in your "flight" list can have a combination key for "arrivalDate" and "code" .
"1ddf3c02-1f2e-4eb7-93d8-3d8d4f9e3da2" : { "airport" : "Gothenburg, Sweden - Landvetter (GOT)", "arrivalDate" : "2016-06-21", "arrivalTime" : "20:58", "arrivalDate_code": "2016-06-21_GOT", // combined key "code" : "GOT", "departureDate" : "2016-06-23", "departureTime" : "20:58" }
Then you can request this key.
Firebase ref = mFirebaseRef.child(FirebaseReference.CHILD_FLIGHTS); Query queryRef = ref.orderByChild("arrivalDate_code").equalTo("2016-06-21_GOT"); queryRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { } });
Another option is to turn off the field in the data structure:
/ flights / $code / $flight_id
This means that your data will look like this:
"flight" : { "GOT": { "1ddf3c02-1f2e-4eb7-93d8-3d8d4f9e3da2" : { "airport" : "Gothenburg, Sweden - Landvetter (GOT)", "arrivalDate" : "2016-06-21", "arrivalTime" : "20:58", "code" : "GOT", "departureDate" : "2016-06-23", "departureTime" : "20:58" } } }
And then you can formulate this request:
Firebase ref = mFirebaseRef.child(FirebaseReference.CHILD_FLIGHTS); Query queryRef = ref.child("GOT").orderByChild("arrivalTime").equalTo("2016-06-21_GOT"); queryRef.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { } });
David East Jun 21 '16 at 19:19 2016-06-21 19:19
source share