#android #firebase #kotlin #firebase-realtime-database
#Android #firebase #kotlin #firebase-realtime-database
Вопрос:
Я получаю следующую ошибку Class com.test.test.LibraryBook does not define a no-argument constructor
Вот мой код:
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (dataSnapshot.exists()) {
if (dataSnapshot.children.count() > 0) {
for (eventSnapshot in dataSnapshot.children) {
val lb = eventSnapshot.getValue(LibraryBook::class.java)
lb?.let {
val id = lb.id
val title = lb.title
val image = lb.image
Вот класс данных LibraryBook
@IgnoreExtraProperties
data class LibraryBook(val id: String,
val title: String = "",
var image: String = "",
var subtitle: String = "",
var author: String = "",
var desc: String = "",
var uploadDate: Long = 0,
var starCount: Long = 0)
Что я сделал не так?
Комментарии:
1. идентификатор не имеет значения по умолчанию, вы пробовали его добавить?
Ответ №1:
Kotlin не создавал конструктор без аргументов для LibraryBook
, потому что у него все еще есть один требуемый id
аргумент. Вам также придется сделать этот аргумент необязательным, используя некоторое значение по умолчанию, как и другие аргументы.