Пустой конструктор для объекта kotlin для использования Firebase
Я пытаюсь сохранить объект внутри базы данных Firebase из Kotlin,
Я не чувствую себя правым, предоставляя пустой конструктор по умолчанию и помещая значения как nullable
, чтобы изменить весь мой код bc этого.
мой класс:
class Video(var id: String, var url: String, var owner: User) : {
constructor() : this("", "", User("", "", ""))
}
Firebase push:
FirebaseDatabase.getInstance().reference.child("public").push().setValue(video)
ошибка:
отсутствует конструктор без аргументов
есть ли лучшее решение для этого?
3 ответов
использовать аргументы по умолчанию:
class Video(var id: String = "", var url: String = "",
var owner: User = User("", "", ""))
(также, рассмотрите возможность использования val
).
Я не тестировал, работает ли он с Firebase, но в соответствии с документация Котлин,
примечание: в JVM, если все параметры основного конструктора имеют значения по умолчанию, компилятор создаст дополнительный конструктор без параметров, который будет использовать значения по умолчанию. Это упрощает использование Kotlin с библиотеками, такими как Jackson или JPA, которые создают экземпляры классов без параметров проектировщики.
поэтому я полагаю, что, применяя значения по умолчанию для всех параметров конструктора, вы создадите конструктор без параметров.
вам нужно добавить пустой конструктор в класс Video. Это необходимо, чтобы иметь возможность использовать классы с Firebase.