2016-06-08 86 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) { 

     } 
    });