Search code examples
androidlistviewfirebasefirebase-realtime-databasefirebaseui

No setter/field for while trying to populate a listview on firebase


I am trying to retrieve data from firebase and display it on my listview using firebase-ui. The code runs fine but nothing is displayed on the list view. This is what I get from my logs:

W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class com.example.sammie.coreteccontacts.Sacco

Here is my FirebaselistAdapter

DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference();
FirebaseListAdapter<Sacco> adapter = new FirebaseListAdapter<Sacco>(getActivity(), Sacco.class, android.R.layout.simple_list_item_1, mDatabaseReference) {
 @Override
protected void populateView(View view, Sacco sacco, int i) {
((TextView)view.findViewById(android.R.id.text1)).setText(Sacco.getName());
}
};
contactList.setAdapter(adapter);

Here is my Sacco class:

package com.example.sammie.coreteccontacts;

public class Sacco {

    String description;
    String location;
    static String name;

    public Sacco() {
    }

    public Sacco(String description, String location, String name) {
        this.name = name;
        this.description = description;
        this.location = location;
    }

    public static String getName() {
        return name;
    }

    public String getDescription() {
        return description;
    }

    public String getLocation() {
        return location;
    }
}

Here is a sample of the data from firebase

KNRWnG6BTkbGJQJVq9Qaddclose

description:"test description"

location: "test location"

name: "test name"


Solution

  • There are no setter methods in your class.

    public void setName(String name) {
        this.name = name;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public void setLocation(String location) {
        this.location = location;
    }
    

    BUT

    -KNRWnG6BTkbGJQJVq9Qaddclose

    This is a unique key which is to be obtained as an object containing your description, location and name.

    W/ClassMapper: No setter/field for -KNRXdDOlA9nV6qxXvOl found on class com.example.sammie.coreteccontacts.Sacco

    This shows that there is an error with your database listener's positioning. It is reading -KNRWnG6BTkbGJQJVq9Qaddclose as a variable to your Sacco class instead of an object of it.

    Please check the JSON file and DatabaseReference. Most probably it should be like this:

    • UnderChilds <----- (ON CHILD LISTENER).
      • -KNRWnG6BTkbGJQJVq9Qaddclose
      • -KNRWnSYnuojkbGJQJVq9Qaddclos