How to get data from Firebase Realtime Database and show it in a spinner?

后端 未结 2 1400
悲&欢浪女
悲&欢浪女 2020-12-04 03:19

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

2条回答
  •  自闭症患者
    2020-12-04 03:46

    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);
    

提交回复
热议问题