When using custom Kotlin objects for firestore drop 'is' prefix. It ruined my entire day.
data class UberRequest(val geoPoint: GeoPoint? = null,
//don't use 'is' prefix on boolean properties
val isAccepted:Boolean = false,
@ServerTimestamp
val timestamp: Date? = null)
I noted on the console that 'is' is dropped as shown on this snapshot from firestore console

So when you try to retrieve the isAccepted value it returns the default value which in this case is false. If the default value is null, you get a null value back
This is illustrated on this snapshot from my logcat

I noted on the console that 'is' is dropped as shown on this snapshot from firestore console

So when you try to retrieve the isAccepted value it returns the default value which in this case is false. If the default value is null, you get a null value back
This is illustrated on this snapshot from my logcat

Firestore uses Java Bean conventions for mapping properties between the Java class and the JSON in the database.
In Java Beans an is prefix on a boolean field/method indicates a boolean property. So the fact that your isAccepted is mapped to a JSON property with the name accepted is expected.
If you want to control the name that Firebase uses in its JSON mapping, you can annotate the field/methods with @PropertyName("isAccepted").
Update (2026): according to the comments below you nowadays need to use separate annotations for the getter vs setter, so it becomes:
@get:PropertyName("isAccepted")
@set:PropertyName("isAccepted")
var isAccepted
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With