You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Firebase数据库嵌套子节点获取指定值并展示到RecyclerView的TextView中

解决方案

要获取Firebase嵌套层级下的grandprice字段,按以下步骤修改即可:

1. 数据读取逻辑修改

你可以直接从DataSnapshot中手动获取嵌套字段,不需要改动现有模型结构,在遍历订单节点的位置修改代码如下:

mDBListener = usersRef.child(uid).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        recommended.clear();
        for (DataSnapshot invoiceSnapshot : dataSnapshot.getChildren()) {
            InvoiceModels upload = invoiceSnapshot.getValue(InvoiceModels.class);
            upload.setKey(invoiceSnapshot.getKey());
            // 替换下方的"嵌套父节点名"为你实际存储grandprice的上层节点名称,多层嵌套就多次调用.child()
            String grandPrice = invoiceSnapshot.child("嵌套父节点名").child("grandprice").getValue(String.class);
            // 将获取到的价格赋值给模型的totalPrice字段,适配你现有适配器的取值逻辑
            upload.setTotalPrice(grandPrice);
            recommended.add(upload);
        }
        mAdapter.notifyDataSetChanged();
        mProgressBar.setVisibility(View.GONE);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getActivity(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
        mProgressBar.setVisibility(View.INVISIBLE);
    }
});

如果你更希望通过模型类自动映射,需要让InvoiceModels的结构和数据库嵌套结构完全匹配:

  • 新增嵌套层级对应的子类,比如grandprice存放在cart节点下,就新增Cart类,内部声明grandprice字段和对应的get/set方法
  • 在InvoiceModels中声明private Cart cart;,并添加对应的get/set方法,后续就可以通过currentProduct.getCart().getGrandprice()获取值

2. 适配器赋值逻辑修改

放开原有注释的赋值代码即可,如果grandprice是数字类型,需要转成字符串避免系统误判为资源ID报错:

@Override
public void onBindViewHolder(RecyclerViewHolder holder, final int position) {
    InvoiceModels currentProduct = recomended.get(position);
    // 数字类型用这个写法:holder.totalPrice.setText(String.valueOf(currentProduct.getTotalPrice()));
    holder.totalPrice.setText(currentProduct.getTotalPrice());
}

内容的提问来源于stack exchange,提问作者MGA-AL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 10:42:00