2017-06-02 35 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

相關問題