Constructor vacío para el object kotlin para usar Firebase

Intento save un object dentro de la database de Firebase de Kotlin, no me parece correcto proporcionar un constructor vacío pnetworkingeterminado y poner los valores como nullable , teniendo que cambiar todo mi código bc de esto.

Mi class:

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

Empuje de Firebase:

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

Error:

falta un constructor sin arguments

¿Hay una mejor solución para esto?

Use arguments pnetworkingeterminados:

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

(también, considere usar val ).

No he probado si funciona con Firebase, pero de acuerdo con la documentation de kotlin ,

NOTA: En la JVM, si todos los parameters del constructor principal tienen valores pnetworkingeterminados, el comstackdor generará un constructor sin parameters adicional que utilizará los valores pnetworkingeterminados. Esto hace que sea más fácil usar Kotlin con bibliotecas como Jackson o JPA que crean instancias de class a través de constructores sin parameters.

Entonces, supongo que al aplicar los valores por defecto para todos los parameters del constructor generará el constructor sin parameters para usted.

Necesita agregar un constructor vacío a la class Video. Esto es necesario para poder usar classs con Firebase.

  • Consulta por key en Google Firebase
  • Anulando la misma firma de diferentes intefaces
  • Kotlin - Cómo agregar OnPageChangeListener en ViewPager
  • IntelliJ (usando gradle): no se puede encontrar el complemento de Kotlin aunque esté instalado
  • ¿Cómo funciona el borrado en Kotlin?
  • Propiedad sin getter en Kotlin
  • Anotación JvmOverloads para constructor primario de class
  • Ejemplo de Kotlin foreachblock
  • Establecer el setter de una interfaz en la class que lo implementa
  • ¿Cómo pruebo generadores para properties delegadas?
  • Kotlin JPA encapsula OneToMany