Пустой конструктор для объекта 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.