将 Firestore 子集合作为类对象读取

gio*_*gio 5 android google-cloud-firestore

我正在研究 android,我必须阅读一系列文档(我将其放入数组列表中)。每个文档都有一个子集合。

所以作为例子。

CAR
- miles
- year
- color
- blablabla
-- MAINTENANCE (subcollection)
    -1
       date: 123
       km:  123456
    -2 
       date: 113132323
       km: 19493
Run Code Online (Sandbox Code Playgroud)

我创建了这个文档 CAR 的一个类,我能够使用 toObject( myclass.class)读取文档的字段。现在是有趣的部分。我创建了一个名为 的第二个类MAINTENANCE,包括日期和公里。在 CAR 类中,我创建了一个名为MAINTENANCEMaintenance 的数组列表的变量。

我能够毫无问题地读取 CAR 对象,但维护阵列中绝对没有任何内容

你会建议我在一个循环中读取所有数据的正确方法吗?我是否必须添加一个完整的侦听器并在阅读汽车后运行第二次阅读?

大家好..我编辑是为了更容易理解,因为我认为问题仍然存在......我改变了方法并深入挖掘:这是我的数据库: 在此处输入图片说明 现在...如果我只是尝试阅读子集合文档:

 Task<QuerySnapshot> TEST = FirebaseFirestore.getInstance().collection("CHARGEPOINT").document("12").collection("CONNECTORS").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            QuerySnapshot data = task.getResult();

            for(DocumentSnapshot documentSnapshot:task.getResult()){

                Log.d("DOCUMENTDATA", documentSnapshot.getData().toString());

            }

            Log.d("DATA", data.toString());

        }
    });
Run Code Online (Sandbox Code Playgroud)

我没有结果.... Querysnapshot 总是空的。我犯了一个错误,但我真的不明白出了什么问题......

我的最终目标是拥有一个带有方法“LoadStructure”的辅助类,该方法加载集合和子集合(ArrayList)的数据,并在完成后返回包含所有数据的 ArrayList。CONNECTORS 可以是多个,这就是我选择 Arraylist 的原因

我已经可以通过我创建的自定义类读取“12”,但似乎我无法访问子集合。