Hammad Nasir
Hammad Nasir

Reputation: 2959

Unable to show all the strings retrieved from FirebaseDatabase

I'm trying to retrieve some string from firebase and trying to show them as the entries of an AppCompatSpinner.

Here's how I'm retrieving it:

vDatabase.child(key).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue();
        vName = newRequest.get("vName");
        Toast.makeText(getBaseContext(), venueName, Toast.LENGTH_SHORT).show();
        if (vName != null) {
            ArrayList<String> spinnerArray = new ArrayList<>();
            spinnerArray.add(vName);

            ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                    getBaseContext(), android.R.layout.simple_spinner_dropdown_item, spinnerArray);

            venueSpinner.setAdapter(adapter);
        } else {
            Toast.makeText(getBaseContext(), "v == null", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {

    }
});

The problem is that above code is retrieving all the strings but showing only the last fetched string and not all of them.

What's wrong here and how can I show all the strings retrieved from the FirebaseDatabase?

Upvotes: 0

Views: 47

Answers (1)

Varma460
Varma460

Reputation: 507

Declare ArrayList spinnerArray = new ArrayList<>(); in your class not inside the onDatachange method

by keeping in onDatachange the variable is creating newly , so everytime new value is inserted in it ,so u are getting the last value to display.

Upvotes: 2

Related Questions