按ID

时间:2019-02-05 21:28:07

标签: java android firebase google-cloud-firestore

我在Firestore中有一个文档,该文档具有一个字符串元素数组,这些字符串元素也应引用其他文档的ID。

所以我的情况是从Firestore获取保存的ID数组,然后在其中创建for循环并在Firestore上查询以获取符合该ID的每个文档。

但是我的问题是我尝试将查询的每个结果都放入新数组,但是我只得到第一个元素

这是我的消防处,

http://prntscr.com/mh4ldy

我的代码:

 void getCoursesDetails(ArrayList<String> openedCourses, MyCallback2 myCallback2){

    // Get full details of every course
 // openedCourses array  here has size of 5 
for (int i = 0; i < openedCourses.size(); i++) {

    DocumentReference docRef = db.collection("courses").document(openedCourses.get(i));

    docRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
        @Override
        public void onSuccess(DocumentSnapshot documentSnapshot) {

            if (documentSnapshot.exists()) {
                detailedCourses.add(documentSnapshot.toObject(Courses.class));
                myCallback2.onCallback(detailedCourses);

            }
        }
    });
}
// when put myCallback2.onCallback(detailedCourses); here i get array of zero cuz Firestore loads data asynchronously
}

所以我的问题是:如何使我的detailCourses数组保存从firestore结果中从for循环获得的每个元素?

0 个答案:

没有答案