Ad

Firebase Firestore ToObject Fails On Boolean Property Mapping

When pulling data from Firestore, I use .toObject() to map the data received into my data class, which is:

data class Img(var event_uid: String = "", var isVip: Boolean = false , var nombre: String = "", var url: String = "")

However, the mapping is not doing well. I received the field isVip=>true in the task, but the object field is mapped as false (default value).

snapshot data

list of mapped object

What am I doing wrong?

EDIT: I see in Logcat

W/Firestore: (0.6.6-dev) [zzevb]: No setter/field for isVip found on class ***.model.Img

According to Kotlin Docu:

If the name of the property starts with is, a different name mapping rule is used: the name of the getter will be the same as the property name, and the name of the setter will be obtained by replacing is with set. For example, for a property isOpen, the getter will be called isOpen() and the setter will be called setOpen(). This rule applies for properties of any type, not just Boolean.

Maybe a Firestore with Kotlin issue?

Ad

Answer

Try adding @field:JvmField to isValid boolean property.

Ad
source: stackoverflow.com
Ad