如何将所有文件从Firestore中的集合添加到android中的列表中?

时间:2019-03-31 08:08:09

标签: android firebase google-cloud-firestore

我要将Firestore数据库中的集合中的所有文档添加到列表中,然后访问该列表以获取每个文档中的字段。

这是我的消防站的屏幕截图- 消防站图片

enter image description here

我要添加文档的列表-

List<DocumentSnapshot> subjects = new ArrayList<>();

这是我添加和访问主题的代码-

private FirebaseAuth mAuth=FirebaseAuth.getInstance();;
.
.
.
FirebaseFirestore.getInstance().collection(mAuth.getCurrentUser().getUid()).document("time_table").collection("Monday").get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
            @Override
            public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                for(QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots)
                {
                    subjects.add(documentSnapshot);
                }
            }
        });
        if(!subjects.isEmpty())

        proList.add(new MainModel(1, subjects.get(0).getString("name"), "Status: On Track", 45, "+", "-", "45"));

else{
   // some code for dialog box

}

我尝试了上面的代码,但是即使我在firestore中有非空文档,每次“ else”语句也会执行,所以它不起作用。

请注意,proList只是我的应用程序的“回收者”视图中显示的另一个列表。

我也尝试了以下方法-

FirebaseFirestore.getInstance().collection(mAuth.getCurrentUser().getUid()).document("time_table").collection("Monday").get().
                addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                        if(task.isSuccessful())
                            subjects = task.getResult().getDocuments();
                    }
                });

0 个答案:

没有答案