java无法访问Cloud Firestore子项的值
我有一个Firebase Cloud Firestore数据结构,如下所示,希望访问“A1”:
我试图访问每个“答案”文档,其中包含实际答案和随后的计票结果。然后我用这个答案信息填充单选按钮
目前,我在x9ojsg4tzLgx2SRTnchp有一个DocumentSnapshot参考。从该参考资料中,我致电“获取答案”集合,如下所示:
public void addRadioButtonsWithFirebaseAnswers(int numberOfAnswers, DocumentSnapshot documentSnapshot) {
mPollAnswerArrayList = new ArrayList<RadioButton>();
for (int i = (numberOfAnswers - 1); i >= 0; i--) {
Log.e("Number of Answers", "The number of answers is " + numberOfAnswers);
final int indexCreated = ((numberOfAnswers - 1) - i);
mPollAnswerArrayList.add((indexCreated), new RadioButton((getActivity().getApplicationContext())));
mPollAnswerArrayList.get(indexCreated).setId(indexCreated);
String firebaseChild = String.valueOf(indexCreated + 1);
documentSnapshot.getReference().collection(ANSWERS_LABEL).document(firebaseChild).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
Answer answer = documentSnapshot.toObject(Answer.class);
mPollAnswerArrayList.get(indexCreated).setText(answer.getAnswer());
Log.v("TAG FOR DOCREF", answer.getAnswer());
}
});
以下是我的答案模型:
@IgnoreExtraProperties
public class Answer {
private String answer;
private int vote_count;
public Answer(String answer, int vote_count){
this.answer = answer;
this.vote_count = vote_count;
}
public String getAnswer() {
return answer;
}
public int getVote_count() {
return vote_count;
}
}
我收到一个空指针:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[])' on a null object reference at com.google.安卓.gms.internal.zzevb$zza.zza(Unknown Source) at com.google.安卓.gms.internal.zzevb.zza(Unknown Source) at com.google.安卓.gms.internal.zzevb.zza(Unknown Source) at com.google.firebase.firestore.DocumentSnapshot.toObject(Unknown Source) at com.troychuinard.fanpolls.Fragment.PollFragment$6.onSuccess(PollFragment.java:534) at com.troychuinard.fanpolls.Fragment.PollFragment$6.onSuccess(PollFragment.java:531) at com.google.安卓.gms.tasks.zzj.run(Unknown Source) at 安卓.os.Handler.handleCallback(Handler.java:739) at 安卓.os.Handler.dispatchMessage(Handler.java:95) at 安卓.os.Looper.loop(Looper.java:148) at 安卓.app.ActivityThread.main(ActivityThread.java:5527) at java.lang.reflect.Method.invoke(Native Method) at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:620)
# 1 楼答案
添加一个公共的无参数构造函数来回答。所有JavaBean类型的对象都应该有一个,这样就可以使用反射来创建它的实例,而不必猜测如何正确地向它传递参数