还有两种方法可以将数据从Firebase
DataSnapshot中取出,而无需使用
Map<String, Object>。
第一种 方法DataSnapshot
是 使用 遍历孩子 的方法 :
ref = new Firebase("https://my.firebaseio.com/messages").limitToLast(10);ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) { String name = (String) messageSnapshot.child("name").getValue(); String message = (String) messageSnapshot.child("message").getValue(); } } @Override public void onCancelled(FirebaseError firebaseError) { }});在以上代码段中,我们
getChildren()用来获取
Iterable您的消息。然后,我们用于
child("name")获取每个特定的子属性。第二种方法是 使用内置的JSON-to-POJO序列化器/反序列化器
。发送消息列表时,其中的
Message对象将序列化为JSON并存储在Firebase中。
要使它们再次退出,您必须做相反的事情:
ref = new Firebase("https://my.firebaseio.com/messages").limitToLast(10);ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot messageSnapshot: dataSnapshot.getChildren()) { Message message = messageSnapshot.getValue(Message.class); } } @Override public void onCancelled(FirebaseError firebaseError) { }});在第二个代码段中,我们仍在使用
getChildren()获取消息的方法,但是现在我们将其从JSON反序列化为一个
Message对象。
对于使用最后一种方法的简单示例应用程序,请查看Firebase的AndroidChat示例。它还显示了如何有效地处理消息列表(提示:)
FirebaseListAdapter。



