Amine Harbaoui
Amine Harbaoui

Reputation: 1295

Duplicated : No setter/field for found on class

When I try to get the data using Firebase I got this issue:

No setter/field for 0C:F3:EE:12:E0:4C found on class com.school.models.EmBeacon

No setter/field for 0C:F3:EE:12:E0:5C found on class com.school.models.EmBeacon

No setter/field for 0C:F3:EE:12:E0:E5 found on class com.school.models.EmBeacon

here's my data sturct:

enter image description here

and this is the code to get all my data:

mDatabase.child("beacons").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                EmBeacon mBeacon = dataSnapshot.getValue(EmBeacon.class);
                Log.i(TAG, "onDataChange: "+mBeacon);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Log.w(TAG, "onCancelled:", databaseError.toException());
            }
        });

and the class :

public class EmBeacon {

    private String proximityUuid;
    private int major;
    private int minor;
    private String addressMac;

    public EmBeacon() {
    }

    public EmBeacon( String addressMac) {
        this.addressMac = addressMac;
    }

    public EmBeacon(String proximityUuid, int major, int minor, String addressMac) {
        this.proximityUuid = proximityUuid;
        this.major = major;
        this.minor = minor;
        this.addressMac = addressMac;
    }

    public String getProximityUuid() {
        return proximityUuid;
    }

    public void setProximityUuid(String proximityUuid) {
        this.proximityUuid = proximityUuid;
    }

    public int getMajor() {
        return major;
    }

    public void setMajor(int major) {
        this.major = major;
    }

    public int getMinor() {
        return minor;
    }

    public void setMinor(int minor) {
        this.minor = minor;
    }

    public String getAddressMac() {
        return addressMac;
    }

    public void setAddressMac(String addressMac) {
        this.addressMac = addressMac;
    }

    @Override
    public String toString() {
        return "EmBeacon{" +
                "proximityUuid='" + proximityUuid + '\'' +
                ", major='" + major + '\'' +
                ", minor='" + minor + '\'' +
                ", addressMac='" + addressMac + '\'' +
                '}';
  

any idea what is wrong here ?

Upvotes: 3

Views: 1018

Answers (1)

Frank van Puffelen
Frank van Puffelen

Reputation: 599176

There are multiple beacons under /beacons, so you need to loop over them in your onDataChange:

mDatabase.child("beacons").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot beaconSnapshot: dataSnapshot.getChildren()) {
            EmBeacon mBeacon = beaconSnapshot.getValue(EmBeacon.class);
            Log.i(TAG, "onDataChange: "+mBeacon);
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
        Log.w(TAG, "onCancelled:", databaseError.toException());
    }
});

Upvotes: 5

Related Questions