【发布时间】:2016-09-17 19:20:41
【问题描述】:
n = ref.child(key).child("customer");
n.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
getData(dataSnapshot);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
getData(dataSnapshot);
}
public void onChildRemoved(DataSnapshot dataSnapshot) { }
public void onChildMoved(DataSnapshot dataSnapshot, String s) { }
public void onCancelled(FirebaseError firebaseError) { }
});
getData 函数看起来像这样。
private void getData(DataSnapshot ds){
arrayList.clear();
for(DataSnapshot data:ds.getChildren()){
People p = new People();
p.setName(data.getValue(People.class).getName());
arrayList.add(p.getName());
}
if(arrayList.size()>0){
ArrayAdapter a = new ArrayAdapter(MainActivity.this,android.R.layout.simple_list_item_1,arrayList);
listview.setAdapter(a);
}
}
它正在显示
不幸的错误并关闭程序(应用程序崩溃)
我哪里做错了?在customer key下有多个push生成的唯一key,我想获取ListView里面的数据(名字)。
这是我的日志
PID: 2906 com.firebase.client.FirebaseException: Failed to bounce to type at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:185 at com.example.ahmedimam.firebase2.MainActivity.getData(MainActivity.java:151)
MainActivity 151 指向
p.setName(data.getValue(People.class).getName());
如果我将其更改为 p.setName(data.getValue().toString); - 它可以正常工作,但它会显示最后添加的带有完整子项的密钥,我只想获取每个自动生成的密钥的名称..
【问题讨论】:
-
社区最近讨论了the addition of urgent begging to questions,并决定更喜欢没有此类请求的帖子。
-
你得到什么错误?
-
PID: 2906 com.firebase.client.FirebaseException: 无法在 com.firebase.client.DataSnapshot.getValue (DataSnapshot.java:185 at com.example.ahmedimam.firebase2.MainActivity 处反弹输入) .getData(MainActivity.java:151)
-
MainActivity 151 指向 p.setName(data.getValue(People.class).getName());如果我将其更改为 p.setName(data.getValue().toString);它可以工作,但它显示了最后添加的带有完整子项的密钥,我只想获取每个自动生成的密钥的名称..
标签: android listview firebase firebase-realtime-database