【问题标题】:How to Append two different hash map on a particular node without replacing other in Firebase?如何在特定节点上附加两个不同的哈希映射而不替换 Firebase 中的其他哈希映射?
【发布时间】:2017-07-04 06:27:56
【问题描述】:

我想在一个特定节点上附加两个不同的哈希映射对,其中一个键值为字符串和其他字符串和数组列表。但问题是后来的一个正在替换 Fire 基础数据库中的第一个。我该怎么办?我不能一直使用 push()。Link of my code. Please help

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    如果您生成一个唯一的随机密钥,您就可以实现这一点。这可以使用push() 方法来完成。

    我们知道,在 HashMap 的情况下,它将旧值替换为新值。

    当你想更新数据时,不要忘记使用updatechildren()方法,而不是直接在引用上使用setValue()方法。

    希望对你有帮助。

    【讨论】:

    • 对于我不能使用 push() 方法的节点的每个子节点,我认为这不是一个好方法,而且我在运行时创建子节点,因此不需要更新 children()明显的原因。请查看我想要实现的代码。它会给你更好的主意。
    • 使用push() 方法是一个非常好的方法。我建议您使用updatechildren() 方法。
    • 假设如果一个节点有 10 个具有键值对的子节点,我们是否必须推送每个子节点?虽然我知道如果两个(键值)都是字符串,我们可以为所有孩子使用单个哈希映射,但这里的情况不同。
    • 您不能在 Firebase 中对同一个引用使用两种不同的类型。这是不可能的,一次使用:HashMap<String, String> 和第二次HashMap<String, ArrayList>。您需要使用单一类型,即第一个 -> HashMap<String, String>。请记住,Firebase 是键值对的结构,每个节点都是一个对象,可以使用 pojo 类或使用 Map 进行更新。
    【解决方案2】:

    只需使用 1 个Map<String, Object> 而不是 2 个不同的。 然后你把所有数据放在那个单一的地图、字符串、数组列表中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 2013-11-23
      相关资源
      最近更新 更多