As title, how to get data from firebase and show in android studio?
Currently, because I don\'t know how to use spinner, so I put the id eventSpinner
in XML fil
I want to show all the registerEventName (Google) of all the eventid (1111,2222,3333....) in the spinner.
To get all event
objects where registerEventName
property is equal to Google
, please use the following query:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
Query query = rootRef
.child("ListOfEvents")
.child(uid)
.orderByChild("registerEventName")
.equalsTo("Google");
query.addListenerForSingleValueEvent(/* ... */);
Edit:
According to your comment, if you want to display all event names into a spinner, please use the following lines of code:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("ListOfEvents").child(uid);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List eventList = new ArrayList();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String registerEventName = ds.child("registerEventName").getValue(String.class);
eventList.add(registerEventName);
}
Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, eventList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
uidRef.addListenerForSingleValueEvent(valueEventListener);