首页 > 解决方案 > Cloud Firestore 数据未加载

问题描述

我的 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数据库时它没有加载从 2 小时开始就这样显示

标签: androidandroid-studiogoogle-cloud-firestore

解决方案


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);
}

推荐阅读