2015-01-09 71 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。