【发布时间】:2018-05-27 22:32:56
【问题描述】:
从 Firebase 检索这组数据,我无法获取 user_description 部分的值。
Firebase 数据
final DatabaseReference fb = FirebaseDatabase.getInstance().getReference();
DatabaseReference complaint = fb.child("complaints");
complaint.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot data) {
for (DataSnapshot child : data.getChildren()) {
Complaint complaint = child.getValue(Complaint.class);
String key = complaint.complaint_description.keySet().toString();
String desc= complaint.complaint_description.get(key).get("user_description");
Log.v("ComplaintFragment", desc);
@Override
public void onCancelled(DatabaseError databaseError) {
Log.v("ComplaintFragment", databaseError);
}
收到错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.util.HashMap.get(java.lang.Object)' on a null object reference
这里是投诉类
public class Complaint implements Serializable {
HashMap<String, HashMap<String, String>> complaint_description;
String complaint_id;
String complaint_subject;
String facility_name;
String facility_type;
boolean fixed;
int join_staff;
int join_student;
int join_total;
String location_area;
String location_floor;
String note;
boolean sent;
String user_id;
public Complaint() {
}
public Complaint(HashMap<String, HashMap<String, String>> complaint_description, String complaint_id, String complaint_subject, String facility_name, String facility_type, boolean fixed, int join_staff, int join_student, int join_total, String location_area, String location_floor, String note, boolean sent, String user_id) {
//initialization
}
//set and get methods here
}
我该怎么办? 谢谢
【问题讨论】:
-
如果你尝试使用
Log.v("ComplaintFragment", key);,它会返回什么? -
@AlexMamo 问题是
Log.v("ComplaintFragment", complaint.complaint_description.get("-LDXSyVDoMIT01vs9GTV"));返回 {user_id=l5JtSqF9wgUfpUbSl6oKONO0poB3, user_description=wow} 但Log.v("ComplaintFragment", complaint.complaint_description.get("-LDXSyVDoMIT01vs9GTV").get("user_description");返回错误java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.util.HashMap.get(java.lang.Object)' on a null object reference
标签: android firebase firebase-realtime-database hashmap