Getting Data From Firebase In Array In Android
I am new to Firebase. I have following data in firebase: Inside EventPlayer I have array of data for key eventID. I want to get all objects for a eventID in an Array. My code: fin
Solution 1:
Try this code. The only change is in the first few lines, with the postQuery variable.
final String eventId=intent.getStringExtra("EventID");
QuerypostQuery= mref.child("EventPlayer").child(eventId).orderByChild("eventID").equalTo(eventId);
// Attach a listener to read the data at our posts reference
postQuery.addValueEventListener(newValueEventListener() {
@OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
EventRequestpost= child.getValue(EventRequest.class);
if(post != null){
System.out.println(post);
arrPlayers.add(post);
}
}
}
@OverridepublicvoidonCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
Your second line of code creates a Query
object, but you never assign it to anything. Assigning it to a new variable and then adding the ValueEventListener
to that new variable should get you to your data.
Solution 2:
To get all those event ids, please use the following code:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference eventIdRef = rootRef.child("EventPlayer").child(eventId);
ValueEventListener eventListener = newValueEventListener() {
@OverridepublicvoidonDataChange(DataSnapshot dataSnapshot) {
List<String> list = newArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String eventID = ds.child("eventID").getValue(String.class);
list.add(eventID);
Log.d("TAG", eventID);
}
Log.d("TAG", list);
}
@OverridepublicvoidonCancelled(DatabaseError databaseError) {}
};
eventIdRef.addListenerForSingleValueEvent(eventListener);
Post a Comment for "Getting Data From Firebase In Array In Android"