【发布时间】:2018-02-13 02:49:08
【问题描述】:
我有一个如下所示的 Firebase Cloud Firestore 数据结构,并且想要访问“A1”:
我正在尝试访问每个“答案”文档,其中包含实际答案和随后的投票计数。然后我使用这个答案信息来填充单选按钮。
目前,我在 x9ojsg4tzLgx2SRTnhp 有一个 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:尝试调用虚拟方法 'java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[])' 在一个 空对象引用 在 com.google.android.gms.internal.zzevb$zza.zza(未知来源) 在 com.google.android.gms.internal.zzevb.zza(未知来源) 在 com.google.android.gms.internal.zzevb.zza(未知来源) 在 com.google.firebase.firestore.DocumentSnapshot.toObject(未知 来源) 在 com.troychuinard.fanpolls.Fragment.PollFragment$6.onSuccess(PollFragment.java:534) 在 com.troychuinard.fanpolls.Fragment.PollFragment$6.onSuccess(PollFragment.java:531) 在 com.google.android.gms.tasks.zzj.run(未知来源) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5527) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
【问题讨论】:
标签: java android firebase google-cloud-firestore