java - 这可能只显示实时 Firebase 数据库的某些特定子值的列表视图吗
问题描述
我已经创建了这个数据库,在此处输入图像描述,并希望显示专门针对儿童可用性的列表:“可用”项目。这段代码我几乎达到了目标
public class Homeuser extends AppCompatActivity {
SharedPreferences preferences;
SharedPreferences.Editor editor;
ListView lv;
FirebaseListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_homeuser);
final Vibrator vibeuser = (Vibrator) Homeuser.this.getSystemService(Context.VIBRATOR_SERVICE);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
editor = preferences.edit();
Query query = FirebaseDatabase.getInstance().getReference().child("food");
lv = findViewById(R.id.list_item);
FirebaseListOptions<food> options = new FirebaseListOptions.Builder<food>()
.setLayout(R.layout.list_items).setLifecycleOwner(Homeuser.this)
.setQuery(query,food.class).build();
adapter = new FirebaseListAdapter(options)
{
@Override
protected void populateView(View v, Object model, int position) {
TextView itemname, itemprice, avail;
itemname = v.findViewById(R.id.itemname);
itemprice = v.findViewById(R.id.itemprice);
avail = v.findViewById(R.id.avail);
food itemFood = (food) model;
if(itemFood.getAvailability().toString().equals("Available")){
itemname.setText(itemFood.getFooditemname().toString());
itemprice.setText(itemFood.getFooditemprice().toString());
avail.setText(itemFood.getAvailability().toString());}
}
};}}
但是面临这样一个问题:
在此处输入图像描述如何摆脱这个?谢谢你。
解决方案
如果要过滤 Firebase 数据库记录,则应在方法中使用查询和whereEqual()
调用,而不是if 语句populateView()
。所以要解决这个问题,请更改以下代码行:
Query query = FirebaseDatabase.getInstance().getReference().child("food");
至
Query query = FirebaseDatabase.getInstance().getReference()
.child("food")
.orderByChild("availability")
.equalTo("Available");
并删除 if 语句。
推荐阅读
- c - c中的彩色输出
- c - c中的二维阵列水平反射
- hyperledger-fabric - 无法生成 orderer 创世块 - Hyperledger Fabric
- c - 在类 C 函数的宏中实现浮点相等检查:错误在哪里?
- php - WooCommerce:从产品变体中获取自定义字段并将其显示为变体价格的后缀
- mysql - 在 C# 和 MySQL 中调用带参数的存储过程
- python - 找不到命令:pipenv
- angular - 如何在单击其他按钮(不是分页按钮)时将当前 [pageSizeOptions] 放入组件
- asp.net - 从下拉列表中选择项目时如何重新加载页面
- c++ - 使用分段 Hermite 样条查找给定角度的垂直点