Firebase Android如何处理onChildAdded
问题描述:
如何处理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
}
当一个新的孩子加入到我的参考节点此方法将触发。但是,我怎样才能得到特定的孩子没有类型化的价值
答
孩子添加是在dataSnapshot上返回的。所以,如果你想获得它的关键:
String myKey = dataSnapshot.getKey()
对于值:
String myKey = dataSnapshot.getValue(String.class)
对于您需要定义你期望类型的值。在这个例子中,我指定了一个字符串的预期,但你甚至可以将值转换为你使用任何对象(只要字段匹配你的对象模型,并在dataSnapshot):
User myUser = dataSnapshot.getValue(User.class)
答
在参考中,添加您的应用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) {
}
});
请参阅https://firebase.google.com/docs/database/android/retrieve-data#child-events –