Firebase нужен пустой конструктор, чтобы иметь возможность десериализовать объекты:
data class User(
@Exclude val gUser: Boolean,
@Exclude val uid: String,
@PropertyName("display_name") val displayName: String,
@PropertyName("email") val email: String,
@PropertyName("account_picture_url") val accountPicUrl: String,
@PropertyName("provider") val provider: String
) {
constructor() : this(false, "", "", "", "", "")
}
Вы можете либо объявить его так, и предоставить некоторые значения по умолчанию для возможности вызова основного конструктора, либо вы можете объявить defaultзначения для всех ваших параметров:
data class User (
@Exclude val gUser: Boolean = false,
@Exclude val uid: String = "",
@PropertyName("display_name") val displayName: String = "",
@PropertyName("email") val email: String = "",
@PropertyName("account_picture_url") val accountPicUrl: String = "",
@PropertyName("provider") val provider: String = ""
)
Тогда для вас будут созданы различные конструкторы, включая пустой конструктор.
Если есть проблема с сериализацией, это может быть из-за методов получения и установкигенерируется ide, попробуйте усилить их аннотациями @get и @set:
data class User (
@Exclude val gUser: Boolean = false,
@Exclude val uid: String = "",
@set:PropertyName("display_name")
@get:PropertyName("display_name")
var displayName: String = "",
@PropertyName("email") val email: String = "",
@set:PropertyName("account_picture_url")
@get:PropertyName("account_picture_url")
var accountPicUrl: String = "",
@PropertyName("provider") val provider: String = ""
)