gpt4 book ai didi

java - 如何从 Firebase 检索多项数据并将这些字符串合并在一起?

转载 作者:行者123 更新时间:2023-12-01 06:06:56 24 4
gpt4 key购买 nike

我有一个 Firebase 数据库,用于存储学生时间表的数据。多项数据的位置如下:

模块 = 时间表 > 类(class) > 日期 > 时间 > MODULE_DATA

房间 = 时间表 > 类(class) > 日期 > 时间 > ROOM_DATA

我的目标是将这些数据项检索到两个字符串中,并将它们合并到一个字符串中。然而,我遇到的问题是检索数据项需要单独的 onDataChange 方法,这意味着我无法访问此之外的字符串以便将其与另一个合并。

这是我检索模块数据的代码:

                //Monday
for (i = 9; i <= 18; i++) {
String time = Integer.toString(i);
final String MonTime = "Mon" + i;

DatabaseReference Module = mRef.child("Monday").child(time).child("Module");
Monday.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String MonValue = dataSnapshot.getValue(String.class);
int id = getResources().getIdentifier(MonTime, "id", getPackageName());
TextView Monday = (TextView) findViewById(id);
Monday.setText(MonValue);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

实际上,我想对以下数据库引用执行相同的操作并将字符串值合并在一起:

            DatabaseReference Room= mRef.child("Monday").child(time).child("Room");

最佳答案

假设您按照我认为的方式构建数据库,这应该可行。我很困惑为什么你说你不能在一个 ValueEventListener 中做到这一点。我也把那个循环拿出来了。

mRef.child("Monday").orderByKey().startAt("9").endAt("18").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot child : dataSnapshot.getChildren()) {
HashMap<String, String> value = (HashMap<String, String>) child.getValue();
String module = value.get("module");
String room = value.get("room");
System.out.println(room + module);
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

编辑

带循环:

for (i = 9; i <= 18; i++) {
String time = Integer.toString(i);
final String MonTime = "Mon" + i;

dbRef.child("Monday").child(time).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String module = dataSnapshot.child("Module").getValue(String.class);
String room = dataSnapshot.child("Room").getValue(String.class);
int id = getResources().getIdentifier(MonTime, "id", getPackageName());
TextView Monday = (TextView) findViewById(id);
Monday.setText(MonValue);
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});
}

关于java - 如何从 Firebase 检索多项数据并将这些字符串合并在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42597084/

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