【问题标题】:How to add multiple values under the same key for FireBase?如何在 FireBase 的同一个键下添加多个值?
【发布时间】:2017-06-02 05:41:39
【问题描述】:

如何在 Firebase 中为同一个键添加多个值?当我执行以下操作将数据添加到我的数据库时,对象只是相互替换。

    Map<String,Object> taskMap = new HashMap<>();
    taskMap.put("age", "12");
    taskMap.put("gender", "male");
    taskMap.put("age", "45");
    taskMap.put("gender", "female");
    reference.setValue(taskMap);

Firebase 中的数据仅显示 45 岁,性别为女性。它超越了 12 岁和男性的性别。我如何两者兼得?

【问题讨论】:

  • 你能解释更多关于你正在尝试做的事情的背景吗? Map 就像一个键值对列表,其中的键是唯一的并且有 1 个单一值。每次您向新键写入值时,例如taskMap.put("age", "45");,它都会覆盖之前的任何内容。
  • 您使用 pojo 类来获取您的 Map 语法将应用的实际数据,例如: Map taskMap = new HashMap(); taskMap.put("1",new Pojo("gender","age")); taskMap.put("2",new Pojo("gender","age")); reference.setValue(taskMap);
  • 我认为您正在尝试保存多个用户数据。在这种情况下,您可以为每个用户创建单独的 map/pojo 对象并将其推送到“用户”节点。请参考firebase.google.com/docs/database/android/lists-of-data
  • @NagarajN 你是对的。愚蠢的错误。谢谢!

标签: android firebase firebase-realtime-database


【解决方案1】:

要更新现有属性的子集或添加新属性,请使用updateChildren()

Map<String,Object> taskMap = new HashMap<>();
taskMap.put("age", "12");
taskMap.put("gender", "male");
taskMap.put("age", "45");
taskMap.put("gender", "female");
reference.updateChildren(taskMap);

另见documentation for updating specific fields

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2015-02-16
    • 1970-01-01
    • 2019-04-27
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多