gpt4 book ai didi

java - 从 firebase 数据库检索数据并将其存储在数组列表中

转载 作者:行者123 更新时间:2023-12-02 03:07:02 25 4
gpt4 key购买 nike

我正在尝试以 Android 应用程序的形式创建一个小型类(class)聚合程序。

我的类(class)全部存储在 Firebase 实时数据库中,可以从 Firebase 控制台查看,一切看起来都很好。

问题是我编写了一个java方法来连接到数据库,从数据库检索数据,将数据转换为自定义Java对象Course,将其附加到另一个自定义Java对象CourseCardModel,然后将 CourseCardModel 对象保存到 ArrayList 中。

与数据库的连接已成功建立,并且它生成的快照包含正确的信息,我已通过循环快照并打印每个类(class)的变量类(class)名称来验证这些信息 对象成功输出。问题是,当该方法完成时,由于某种原因,arrayList 返回的是空的,即使在整个快照迭代中检查 ArrayList 的大小时,我可以看到 CardModel 对象被添加到其中。

如果有人能帮助解决这个问题,我将不胜感激,我对 Firebase 还很陌生。

GenerateCourses() 方法

private ArrayList<CourseCardModel> generateCourseCards() {

courseCardModelList = new ArrayList<CourseCardModel>();
cardModel = new CourseCardModel();

dbref = FirebaseDatabase.getInstance().getReference().child("courses");


// Retrieve the course data from firebase db and cast as Course object
dbref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
Log.e("Count " ,"" + snapshot.getChildrenCount());
for (DataSnapshot postSnapshot: snapshot.getChildren()) {

c = postSnapshot.getValue(Course.class);
System.out.println("COURSE INFO: " + c.getCourseName());

cardModel.setCourse(c);

courseCardModelList.add(cardModel);

System.out.println("COURSE CARD MODEL LIST SIZE: " + courseCardModelList.size());

}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("The read failed: ", databaseError.getMessage());
}

});

System.out.print("END OF METHOD ARRAY SIZE CHECK: " + courseCardModelList.size());

return courseCardModelList;

}

LOGCAT 输出

01-11 09:57:57.105 28709-28780/coursematch.coursematchuk D/FA: Connected to remote service
01-11 09:57:57.105 28709-28780/coursematch.coursematchuk V/FA: Processing queued up service tasks: 4
01-11 09:57:59.625 28709-28709/coursematch.coursematchuk E/Count: 200
01-11 09:57:59.650 28709-28709/coursematch.coursematchuk I/System.out: END OF METHOD ARRAY SIZE CHECK: 0COURSE INFO: Physiotherapy BSc (Hons)
01-11 09:57:59.650 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 1
01-11 09:57:59.650 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: History and Archaeology BA (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 2
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Arabic and French MA (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 3
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Policy and Spanish BA (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 4
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Modern Languages (French and Spanish) and Greek (with year abroad) MA (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 5
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Politics BA (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 6
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Nursing (Child) BSc (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 7
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electrical and Electronic Engineering MEng (Hons)
01-11 09:57:59.655 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 8
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: English and Russian MA (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 9
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: French and Medieval History MA (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 10
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: French and Modern History MA (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 11
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Physics with Sports Science BSc (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 12
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electronic Engineering with Management BEng (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 13
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Optometry BSc (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 14
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Policy and Sociology BA (Hons)
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 15
01-11 09:57:59.660 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Comparative Literature and French and Russian (with year abroad) MA (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 16
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Statistics Economics and Finance BSc (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 17
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Mechanical Engineering BEng (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 18
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: International Business Management (Spain) BBA (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 19
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Ancient History and Archaeology BA (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 20
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electronic Engineering MEng (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 21
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Drama and Music BA (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 22
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Chemistry BSc (Hons)
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 23
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Medicine MB
01-11 09:57:59.665 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 24
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Linguistics MA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 25
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Aeronautical Engineering BEng (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 26
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: International Business and Marketing BSc (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 27
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: German and Theatre and Performance BA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 28
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Anthropology BA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 29
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Policy and Spanish BA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 30
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Modern Languages (French and Spanish) and Greek MA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 31
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Accounting and Mathematics and Statistics BA (Hons)
01-11 09:57:59.670 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 32
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Art History and French MA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 33
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Accounting and Business Analysis and Technology BA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 34
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Modern Languages (Russian and Spanish) and English (with integrated year abroad) MA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 35
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Policy and Crime BA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 36
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: International Business and Marketing BSc (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 37
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Statistics Economics and a Language BSc (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 38
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Social Work BA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 39
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Combined Honours in Social Sciences BA (Hons)
01-11 09:57:59.675 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 40
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Comparative Literature and Russian and Spanish (with year abroad) MA (Hons)
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 41
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Automotive Engineering BEng (Hons)
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 42
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electrical Engineering MEng (Hons)
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 43
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Comparative Literature and Russian and Spanish MA (Hons)
01-11 09:57:59.680 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 44
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Economics and Finance (with European study) BA (Hons)
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 45
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Mathematics Statistics and Finance BSc (Hons)
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 46
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: French and German Studies BA (Hons)
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 47
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Sociology BA (Hons)
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 48
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electronic Engineering with Management MEng (Hons)
01-11 09:57:59.685 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 49
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Mechanical Engineering BEng (Hons)
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 50
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Medicine (graduate entry) BMBS
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 51
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Electrical Engineering BEng (Hons)
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 52
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE INFO: Automotive Engineering MEng (Hons)
01-11 09:57:59.690 28709-28709/coursematch.coursematchuk I/System.out: COURSE CARD MODEL LIST SIZE: 53

最佳答案

调用dbref.addValueEventListener()的结果在onDataChange回调中异步返回...这很可能在您返回时没有发生该方法就是为什么 courseCardModelList 为空的原因。您需要相应地构建逻辑。

关于java - 从 firebase 数据库检索数据并将其存储在数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41587829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com