有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法访问Cloud Firestore子项的值

我有一个Firebase Cloud Firestore数据结构,如下所示,希望访问“A1”:

enter image description here

我试图访问每个“答案”文档,其中包含实际答案和随后的计票结果。然后我用这个答案信息填充单选按钮

目前,我在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) 个答案

  1. # 1 楼答案

    添加一个公共的无参数构造函数来回答。所有JavaBean类型的对象都应该有一个,这样就可以使用反射来创建它的实例,而不必猜测如何正确地向它传递参数

    public Answer() {}