2017-06-02 80 views
1

如何在Firebase中为同一个键添加多个值?当我执行以下操作将数据添加到我的数据库时,这些对象只是相互替换。如何在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岁和男性的性别。我怎么都有?

+1

你能解释一下你正在尝试做什么的背景吗? “Map”就像一个键值对的列表,其中键是唯一的,并且有一个单值。每次你给一个新的密钥写一个值,比如'taskMap.put(“age”,“45”);',它会覆盖之前的任何东西。 – poisondminds

+0

你使用pojo类来获取实际的数据,你的Map语法将应用如下: Map taskMap = new HashMap <>(); taskMap.put(“1”,new Pojo(“gender”,“age”)); taskMap.put(“2”,new Pojo(“gender”,“age”)); reference.setValue(taskMap); – ashish

+1

我认为你正在尝试保存多个用户的数据。在这种情况下,您可以为每个用户创建单独的map/pojo对象,并将其推送到“用户”节点。请参阅https://firebase.google.com/docs/database/android/lists-of-data –

回答

3

更新现有属性的子集或添加新的,使用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

相关问题