2016-08-27 103 views
-2

根有一個孩子聊天。在聊天,我們有救了不同用戶的(在這種情況下聊天,他們都aseed,aseed2和aseed3。我需要在列表中顯示在列表視圖中的用戶名(顯示aseed,aseed2和aseed3)。Firebase JSON:需要訪問孩子,但每個孩子都有更多的孩子

這裏是JSON

{ 
"chat" : { 
    "aseed" : { 
     "-KQC94Spu5JdJRbjnBh_" : { 
     "author" : "JavaUser72599", 
     "message" : "ggf" 
     }, 
     "-KQC98gR9vKOyOAtKrS5" : { 
     "author" : "JavaUser72599", 
     "message" : "dhdh" 
     } 
    }, 
    "aseed3" : { 
     "-KQCBw_ldkfhVG643eFH" : { 
     "author" : "aseed3", 
     "message" : "aseed" 
     }, 
     "-KQCBxQJXq8rIqkHvA4r" : { 
     "author" : "aseed3", 
     "message" : "ok" 
     }, 
     "-KQCC30HjSsHWSot9MNu" : { 
     "author" : "aseed3", 
     "message" : "hi" 
     } 
    }, 
    "aseed2" : { 
     "-KQCC0-q6Do67PiFXXcP" : { 
     "author" : "aseed2", 
     "message" : "ok ok" 
     } 
    } 
    } 
} 

示範項目的Android聊天演示瞭如何在葉讀取最終數據

+0

顯示您當前的代碼。 –

+0

用示例代碼解釋你的問題 –

+0

使用這個 - https://github.com/firebase/AndroidChat 稍作修改我根據用戶名創建了這些聊天腳本,其中聊天腳本保存在單獨的孩子中。我現在沒有代碼來訪問名稱(如aseed,aseed2,aseed3)以將其顯示在列表中。 –

回答

2

我看到它的方式,您需要訪問該特定DataSnapshot節點的密鑰。你可以做的是,只要你有機會訪問aseed,aseed2節點(可能會在for循環內),你可以獲得每個孩子的密鑰並用它給一個ListView充氣。

DataSnapshot元素有一個名爲getKey().

方法這裏的文檔。 DataSnapshot getKey() Method

-1

你可以得到的JSONObject然後得到名稱將返回JSONArray 代碼:。

String jsonstr = json;//This is the JSON string 

JSONObject jo = new JSONObject(jsonstr); 
JSONObject chat = jo.getJSONObject("chat"); 
JSONArray jsonNames = chat.names(); 
String[] names = null; 
for(i=0; i < jsonNames.length();i++) 
    names[i] = jsonNames.get(i); 

現在使用這個名稱數組在任何你想要的。