【问题标题】:Best practices to convert Firebase database having dynamic values to kotlin data classes将具有动态值的 Firebase 数据库转换为 kotlin 数据类的最佳实践
【发布时间】:2020-02-13 02:12:06
【问题描述】:

我的 firebase 实时数据库具有节点的动态值(在诸如胡须 - 修剪、面部、染发等服务下)。

将其转换为 Kotlin 数据类(Java POJO)的最佳实践是什么?


data class User constructor(
    var services: List<Services>
)

data class Services constructor(
    var description: String = "",
    var duration: String = "",
    var name: String = "",
    var picture: String = "",
    var picture_url: String = "",
    var price: String = "",
    var thumbnail: String = "",
    var thumbnail_url: String = ""
)

【问题讨论】:

    标签: android kotlin firebase-realtime-database pojo data-class


    【解决方案1】:

    最后,解决了 Map(而不是 List)的问题,因为数据从 Firebase 作为 Map 接收。

    var services: Map<String, Services> 
    

    各位,谢谢大家的支持。

    【讨论】:

      【解决方案2】:

      只要数据类的每个字段都有一个可为空的var,您的类就可以正常工作。节点的密钥是什么并不重要。它可以是自定义字符串,就像您的情况一样,甚至可以是由 push() 方法生成的随机 id。

      但请记住,为您的键使用这些自定义名称可能适用于小型数据集,但对于较大的应用程序,它可能无法扩展。所以最好使用push()方法提供的那些随机密钥。

      【讨论】:

      • 鉴于所有属性都具有默认值,因此不需要它们可以为空(我想如果 null 是所需的默认值,它们只会被标记为可空)。
      • 是的,因为你已经在 costructor 中初始化了所有这些,所以它可以正常工作。
      • 亚历克斯,感谢您的支持。当然,感谢您的努力。让我回去吧。
      • 好的,让我知道。
      • 知道它有效,我现在请您通过单击投票箭头下方左侧的复选标记 (✔️) 来接受我的回答。应将颜色更改为绿色。我真的很感激。谢谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2018-07-18
      • 2022-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      相关资源
      最近更新 更多