【问题标题】:Firebase Realtime Database Data Model Class Problem KotlinFirebase 实时数据库数据模型类问题 Kotlin
【发布时间】:2021-12-04 08:46:03
【问题描述】:

我无法为此数据库创建数据模型。

Firebase Realtime Database

我无法列出与此模型的聊天记录。

data class ChatModel(   var voice : String ?= null,
                        var sender : String ?= null,
    )

示例 JSON

 D/Log: DataSnapshot { key = J7AW1EgBx3cyP4eXfxYIBIfoT2J3, value = 
{33447543={voice=https://firebasestorage.googleapis.com/v0/b/xxx.appspot.com/o/33447543.aac?alt=media&token=16e1f68b-2e2d-4c2b-976e-c30bdc38012d, chatwith=etcmobileapps, sender=mesut@gmail.com}, 32190281={voice=etcmobileapps.com, chatwith=etcmobileapps, sender=etcmobileap@gmail.com}} }

如果我删除 chatwith 值,聊天消息会出现在我的屏幕上,但不会与 chatwith 一起出现。

我需要聊天和聊天消息的数据类模型。

【问题讨论】:

  • 现有数据模型有什么问题?

标签: database firebase kotlin


【解决方案1】:

在您的实时数据库结构中,您有不同结构的兄弟节点。没有直接的方法可以将其转换为 POJO/数据类。 可能最简单的解决方案是重组您的实时数据库并将所有聊天消息放在一个新节点下。像这样的:

chats
  |---J7AW1.....
          |---messages
                 |---32190281
                       |---sender: 
                       |---voice:
                 |---33447543
                       |---sender: 
                       |---voice:
          |---chatwith:

那么您的ChatModel 将是:

data class ChatModel(
    val chatwith: String? = null,
    val messages: List<ChatMessage>? = null
)

data class ChatMessage(
    val sender: String? = null,
    val voice: String? = null
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2021-07-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多