2016-06-08 47 views
1

如何处理firebase android中的onChildAdded事件。下面 是我的数据库JSON结构Firebase Android如何处理onChildAdded

{ 
    message{ 
      "id"=10; 
      "name"="xyz" 
      } 
} 

    public void onChildAdded(DataSnapshot dataSnapshot, String s) { 

      // how can I handle the particular child that has added 
     } 

当一个新的孩子加入到我的参考节点此方法将触发。但是,我怎样才能得到特定的孩子没有类型化的价值

+2

请参阅https://firebase.google.com/docs/database/android/retrieve-data#child-events –

回答

2

孩子添加是在dataSnapshot上返回的。所以,如果你想获得它的关键:

String myKey = dataSnapshot.getKey() 

对于值:

String myKey = dataSnapshot.getValue(String.class) 

对于您需要定义你期望类型的值。在这个例子中,我指定了一个字符串的预期,但你甚至可以将值转换为你使用任何对象(只要字段匹配你的对象模型,并在dataSnapshot):

User myUser = dataSnapshot.getValue(User.class) 

更多详情请进入Firebase official documentation.

0

在参考中,添加您的应用Firebase控制台网址。

DatabaseReference myFirebaseRef = database.getReference("Your firbase path"); 
    myFirebaseRef.addChildEventListener(new ChildEventListener() { 
     @Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
     if(dataSnapshot.hasChild("message")) { 
     for (DataSnapshot poly : dataSnapshot.child("message").getChildren()) { 
      String id=String.valueOf(poly.child("id").getValue); 
      String name=String.valueOf(poly.child("name").getValue); 

     } 
    } 
     } 
     @Override 
     public void onChildChanged(DataSnapshot dataSnapshot, String s) 
     { 

     } 
     @Override 
     public void onChildRemoved(DataSnapshot dataSnapshot) { 

     } 

     @Override 
     public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    });