gpt4 book ai didi

java - 查询 FirebaseListAdapter 以仅将特定子项返回到自定义 View

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

我有一个连接到 Firebase 的 Android 应用程序,我正在使用 FirebaseListAdapter 使用数据库引用中的数据填充自定义布局。

这正在按预期工作。但是是否可以查询此数据以仅返回某些条目?

例如,如果这是我的数据示例:

"students" : {  
"-KTA7xijNrK1SK98rZns" : {
"name" : "Ro",
"age" : 28,
"email" : "test@test.com"
},

"-KTABiJuH2-RXwmp0Rcu" : {
"name" : "Tom",
"age" : 22,
"email" : "test1@test.com"
}...

因此,目前所有学生都通过自定义 View 填充到 ListAdapter 中,这就是我想要的初始加载,但如果我只想显示超过特定年龄的学生或具有特定名称的学生,则基于按钮单击是否有可能以某种方式将这些查询集成到 FirebaseListadapter 中?

当前列表适配器代码。

 //Firebase DB srefrence
mDatabaseStolen = FirebaseDatabase.getInstance().getReference().child("students");

FirebaseListAdapter<Student> bikeAdapter = new FirebaseListAdapter<Studnet>
(getActivity(), Student.class, R.layout.list_item, mDatabase) {
@Override
protected void populateView(View v, Student model, int position) {


// Find the TextView IDs of list_item.xml
TextView nameView = (TextView) v.findViewById(R.id.name);
TextView ageView = (TextView) v.findViewById(R.id.age);
TextView emailView = (TextView) v.findViewById(R.id.email);

//setting the textViews to Student data
nameView.setText(model.getname());
ageView.setText(String.valueOf(model.getAge()));
emailView.setText(model.getEmail());
}
};

感谢任何帮助。

最佳答案

您可以基于 DatabaseReference 或基于 Query 构造 FirebaseListAdapter。使用 DatabaseReference 它将显示某个位置的所有数据。但是,当您使用查询时,您可以显示该位置的数据子集。

假设您只想显示 20 岁到 25 岁之间的学生:

students =    FirebaseDatabase.getInstance().getReference().child("students");
studentsQuery = students.orderByChild("age").startAt(20).endAt(25);

bikeAdapter = new FirebaseListAdapter<Student>
(getActivity(), Student.class, R.layout.list_item, studentsQuery) {

另请参阅Firebase documentation on queries .

关于java - 查询 FirebaseListAdapter 以仅将特定子项返回到自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40082456/

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