【发布时间】:2017-11-06 19:11:19
【问题描述】:
我有以下 firebase 类。患者和用户(医生、医院的东西)是多对多的关系。
病人分类
public class Patients {
public String name;
public String surname;
public ArrayList<String> users;
}
这就是我在@987654326 上的firebase 数据库上没有users(表patients 的字段NOT 表)字段遍历数据的方式@表。
database.child("patients").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot patient : dataSnapshot.getChildren()){
Patients p = patient.getValue(Patients.class);
//use p object
listViewAdapter.notifyDataSetChanged();
}
patientsList.setAdapter(listViewAdapter);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
当然这不适用于patients 表的当前格式,因为users 的子项(表patients 不是 表的字段,需要另一个循环)和我懂吗。我不明白的是,当我必须执行另一个循环时,如何将 Patients 类与 patients 表关联起来。我想不出办法让Patients p = patient.getValue(Patients.class) 与另一个需要迭代的字段一起工作。
我的目标是包含 Patients 类的对象 p 例如
name = Mark,surname = Marks,users[] = [y92pZ4rynpUFSOm3MrzQncimu153,...]。我不知道应该如何构建 pojo 以及迭代孩子的正确方法是什么,所以用户 ArrayList 将包含每个患者的所有 users 字段并使用类似 Patients p = patient.getValue(Patients.class)
【问题讨论】:
-
简单地说,你想在你的输出中有什么?
-
@AlexMamo 要与
patients表关联的Patients对象。我在patients表中迭代的最后一部分代码在没有users字段的情况下工作。 -
Firebase 没有表格。 Firebase 是一个 NoSQL 数据库。你没有理解我的问题。你想打印什么?给我一个包含数据库值的示例。
-
我不想打印任何东西,如果您指的是列表视图,这与我的问题无关。我想从 firebase 获取值并使用它们。我编辑并删除了我正在使用的列表,因为它与问题无关并且不想专注于那里。
-
我已经更新了问题。我不知道这是否适合您作为示例我的目标是
Patients类的对象p包含例如name = Mark、surname = Marks、users[] = [y92pZ4rynpUFSOm3MrzQncimu153,...]我不知道 pojo 应该如何结构化以及迭代孩子的正确方法是什么,以便用户ArrayList将包含每个患者的所有users字段。
标签: java android firebase firebase-realtime-database