我想从firebase数据库的business_info节点下的PjSxhQXCyXdSv07LxVzU7buvhkF2中读取'resName'和'status'值,如。尝试在空对象引用上调用虚方法 - Firebase数据库android
我不断收到此错误:
Attempt to invoke virtual method 'java.lang.String com.example.android.project_water.Utilities.RestaurantInformation.getResName()' on a null object reference.
有谁知道如何解决这个问题?请让我知道是否需要更多信息。
代码:
public class Info extends Fragment {
private DatabaseReference mDatabase;
private FirebaseAuth firebaseAuth;
private String businessID;
private TextView resNameChange, statusChange;
public Info() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_info, container, false);
SharedPreferences businessID1 = getActivity().getSharedPreferences("BUSINESS_ID", Context.MODE_PRIVATE);
businessID = businessID1.getString("businessID", "businessIDNotFound");
Log.i("BUSINESS KEY IS: ", businessID);
firebaseAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference();
resNameChange = rootView.findViewById(R.id.resNameChange);
statusChange = rootView.findViewById(R.id.statusChange);
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
showData(dataSnapshot);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return rootView;
}
public void showData(DataSnapshot dataSnapshot) {
if (dataSnapshot.child("business_info").child(businessID).exists()) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
RestaurantInformation resInfo = new RestaurantInformation();
//error on the line below******
resInfo.setResName(ds.child(businessID).getValue(RestaurantInformation.class).getResName());
resInfo.setStatus(ds.child(businessID).getValue(RestaurantInformation.class).getStatus());
resNameChange.setText(resInfo.getResName());
statusChange.setText(resInfo.getStatus());
}
} else {
resNameChange.setText("NAME");
statusChange.setText("ONLINE");
}
}
}
我的模型
public class RestaurantInformation {
private String resName;
private String status;
public RestaurantInformation() {
}
public RestaurantInformation(String resName) {
this.resName = resName;
}
public RestaurantInformation(String resName, String status) {
this.resName = resName;
this.status = status;
}
public String getResName() {
return resName;
}
public void setResName(String resName) {
this.resName = resName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
I /业务键:: PjSxhQXCyXdSv07LxVzU7buvhkF2 – ben