I'm using Google's firebase-database SDK for Android, v9.0.1. I have my app hooked up to Firebase and can read and write data at various locations.
However, I cannot get a specific boolean field to bind using dataSnapshot.getValue(PingReport.class)
and I keep getting an error in my logs that says No setter/field for isUp found on class com.myapp.PingReport
when the field clearly exists in my model.
Here's the JSON in the Firebase database:
{
"durationMs": 364,
"isUp": true,
"timestampMillis": 1464916019971
}
and here's the model class:
public class PingReport {
private long durationMs;
private boolean isUp;
private long timestampMillis;
public PingReport() {
// required by Firebase
}
public PingReport(long durationMs, boolean isUp, long timestampMillis) {
this.durationMs = durationMs;
this.isUp = isUp;
this.timestampMillis = timestampMillis;
}
public long getDurationMs() {
return durationMs;
}
public boolean isUp() {
return isUp;
}
public long getTimestampMillis() {
return timestampMillis;
}
}
If I call getDurationMs()
or getTimestampMillis()
the correct values are returned, but the value returned from isUp()
is always false
. I have tried different combinations of naming it up
and isUp
and mUp
and adding setters setUp(boolean up)
and setIsUp(boolean isUp)
, but nothing seems to work. The documentation for the Android SDK not very detailed. Is there some trick or detail I'm overlooking?