【问题标题】:cloud firestore data not lodingCloud Firestore 数据未加载
【发布时间】:2021-05-01 01:06:59
【问题描述】:

我的 DbQuery 类中有一个数据库

    public  static  void loadPaperData(MyCompletelistener completelistener){
    g_paperList.clear();
    g_firestore.collection("SCHOOL").document(g_boardList.get(g_selected_board_index).getDocID()).collection("PAPER_LIST").document("PAPER_INFO"
    ).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {
            int NoOfPaper = g_boardList.get(g_selected_board_index).getNoOfPaper();
            for (int i=1; i<=NoOfPaper; i++){
                g_paperList.add(new PaperModel(documentSnapshot.getString("PAPER"+ String.valueOf(i)+"_ID"),documentSnapshot.getString("PAPER"+String
                        .valueOf(i)+"_URL")));
            }

        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            completelistener.onFailure();
        }
    });

}

我的 PaperActivity 是

DbQuery.loadPaperData(new MyCompletelistener() {
        @Override
        public void onSuccess() {
            adapter = new paperAdapter(DbQuery.g_paperList);
            paperView.setAdapter(adapter);
            progress_Dialog.dismiss();


        }

        @Override
        public void onFailure() {
            Toast.makeText(PaperActivity.this,"Something Went Wrong ! please Try Again Later !",Toast.LENGTH_SHORT).show();
            progress_Dialog.dismiss();

        }
    });

当我最初定义它正在工作的数据时,但当我连接到 firestore 数据库时,它没有加载

【问题讨论】:

    标签: android android-studio google-cloud-firestore


    【解决方案1】:

    您在下载数据后缺少拨打completelistener.OnSuccess()

    public  static  void loadPaperData(MyCompletelistener completelistener){
        g_paperList.clear();
        g_firestore.collection("SCHOOL").document(g_boardList.get(g_selected_board_index).getDocID()).collection("PAPER_LIST").document("PAPER_INFO"
        ).get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
            @Override
            public void onSuccess(DocumentSnapshot documentSnapshot) {
                int NoOfPaper = g_boardList.get(g_selected_board_index).getNoOfPaper();
                for (int i=1; i<=NoOfPaper; i++){
                    g_paperList.add(new PaperModel(documentSnapshot.getString("PAPER"+ String.valueOf(i)+"_ID"),documentSnapshot.getString("PAPER"+String
                            .valueOf(i)+"_URL")));
        
                }
        completelistener.onSuccess();
    
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                completelistener.onFailure();
            }
        });
    
    }
    

    顺便说一下,我建议你通过接口回调发送数据,而不是使用公共的ArrayList,例如,使用这个接口:

    public interface CompleteListener {
        void onSuccess(ArrayList<PaperModel> paperModelList);
        void onFailure(Exception e);
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-11
      • 2018-08-11
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多