kotlin对象的空构造函数使用Firebase

我试图从Kotlin保存在Firebase数据库内的对象,我不觉得正确的提供一个默认的空构造函数,并把值为nullable ,不得不改变我所有的代码BC这一点。

我的课:

 class Video(var id: String, var url: String, var owner: User) : { constructor() : this("", "", User("", "", "")) } 

Firebase推送:

 FirebaseDatabase.getInstance().reference.child("public").push().setValue(video) 

错误:

缺少一个没有参数的构造函数

有没有更好的解决方案呢?

使用默认参数:

 class Video(var id: String = "", var url: String = "", var owner: User = User("", "", "")) 

(也可以考虑使用val )。

我还没有测试过它是否适用于Firebase,但根据kotlin文档 ,

注:在JVM上,如果主构造函数的所有参数都有默认值,编译器将生成一个额外的无参数构造函数,它将使用默认值。 这使得使用Kotlin来更容易使用库(如Jackson或JPA)通过无参数构造函数创建类实例。

所以我想,通过应用默认值的所有构造函数参数将为您生成无参数的构造函数。

您需要将一个空的构造函数添加到Video类。 这是要求能够使用Firebase的课程。