2015-01-09 72 views
1

當我檢索我的數據時,它包含了括號{和唯一的id,例如 - JSDHGJDGJJSKA ...我想使它更加清晰,並刪除括號。我的輸出是:更清晰的格式Firebase Android檢索到的數據

{-JfFQQRYnhiKeuN5ERGX={msg=Monday},-JfFQAhQQWIFAUuV1nD4={msg=this is test}} 

我想擺脫括號和單詞msg,並隨機檢索其中一條消息。

我希望我的輸出,如果我拿起一個隨機消息:

Monday 

如果我拿起另一隨機

this is test 

就如何實現這一目標的任何想法,將不勝感激。

+0

閱讀有關正則表達式的內容。 – Simon 2015-01-09 21:13:23

+0

請添加兩個代碼片段:您如何添加數據以及如何檢索數據。 – 2015-01-09 22:53:43

+0

好的,我會在我完成lol遊戲後更新。 – nothingness 2015-01-09 23:25:35

回答

3

這將從您在問題中顯示的對象中檢索隨機消息。

function getRandomMessage(data) { 
    if(!data) { return null; } 
    var keys = Object.keys(data); 
    var randomKey = keys[ Math.floor(Math.random()*keys.length) ]; 
    return data[randomKey]; 
} 

請記住,這假定您有少量的記錄。如果你開始進入數千人,你需要一個更強大的解決方案,而不僅僅是抓取整個數據集。

+0

非常感謝這將有助於 – nothingness 2015-01-14 14:06:17

+0

這是一個很好的答案,但它不是Android?這個想法會是一樣的嗎? – nothingness 2015-01-15 09:13:03

+0

我想出了java中的這個解決方案,使用迭代器來移動我創建的索引計數。 – nothingness 2015-01-29 18:33:51

0

你會得到字符串中的數據嗎?如果你使用字符串,那麼很容易,你可以使用替換的方法,例如:yourString.replace(「a」,「b」)

+0

啊我會嘗試我認爲你必須使用來自Firebase的功能感謝您的建議。會讓你知道它是否按照我想要的方式工作。 – nothingness 2015-01-09 22:36:01

+0

感謝您的回答。 – nothingness 2015-01-11 22:23:57

+0

是否正常工作.....? – Black 2015-01-12 06:10:18

1

當我使用這個,我能夠檢索我的數據爲例如。我保存爲書 - >標題: 「死亡之書」,這裏是檢索標題代碼:檢索數據 -

String title = (String) snapshot.child("title").getValue(); 

它的工作我使用,我沒有用推,因爲推創建其唯一的ID後和我的水平處理它的複雜,所以我用:保存數據 -

   Map<String, Object> title= new HashMap<String, Object>(); 
       title.put("title", "This is a working message"); 
       f.child("Book").updateChildren(title); 

和一切工作。我希望它能幫助所有遇到這些問題的人。有了更新的孩子,你可以使用自動增加你的ID。