这是我的数据的样子:
{
"courses":{
"Business":{
"PushKey_1":{
"courseC":"B1111",
"name":"Business Year 1"
},
"PushKey_2":{
"courseC":"B2222",
"name":"Business Year 2"
},
}
}
}
我正在尝试检索基于 child 的推送 key 。我现在正在尝试的代码:
String testCourseC = "B2222";
String showCourseKey;
DatabaseReference mRef = FirebaseDatabase.getInstance().getReference().child("courses").child("Business");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()){
CourseDetails data = ds.getValue(CourseDetails.class);
String compareC = data.getCourseC();
if (compareC.equals(testCourseC)){
showCourseKey = dataSnapshot.getKey();
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
textview1.setText(showCourseKey);
我的CourseDetails
类:
public class CourseDetails {
private String courseC;
private String name;
public CourseDetails() {
}
public CourseDetails(String courseC, String name) {
this.courseC = courseC;
this.name = name;
}
public String getCourseC() {
return courseC;
}
public void setCourseC(String courseC) {
this.courseC = courseC;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
textview1 应该显示 PushKey_2。如果代码错误,textview1 不应该显示“类(class)”吗?
我从上面的代码中得到了 NullPointerException。我已经阅读了文档并经历了类似的问题,但仍然错了。请不要介意我的愚蠢问题
最佳答案
我运行您的代码,但没有得到 NullPointerException
。请发布堆栈跟踪。
我会指出看起来像是错误的地方。
这个:
showCourseKey = dataSnapshot.getKey();
应该是:
showCourseKey = ds.getKey();
关于Android - 获取基于子 Firebase 的推送 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38808970/