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

FirebaseRecyclerAdapter点击时如何获取数据库父节点下的Name子节点数据

获取Firebase父节点下"Name"子节点数据的解决方案

嘿,我来帮你搞定这个问题!你想要获取当前父节点下名为"Name"的子节点数据,其实有两种实用的方式,根据你的需求选择就行:

方法一:直接使用已绑定的Model对象(推荐)

FirebaseRecyclerAdapter已经帮你把数据库中的数据解析到了AllUsers模型对象里,所以你完全可以直接调用模型类里的getName()方法来获取"Name"子节点的数据,这种方式既高效又简洁。

修改你代码里的user_name赋值部分:

// 替换原来不完整的那行代码
final String user_name = model.getName();

方法二:从数据库引用中直接获取(特殊场景使用)

如果因为某些特殊需求,你需要直接从数据库引用中读取这个字段,可以通过getRef(position)拿到当前项的数据库引用,再通过child("Name")定位到子节点,最后用getValue()获取数据:

final String user_name = getRef(position).child("Name").getValue(String.class);

⚠️ 注意:这种方式是同步读取数据,在主线程调用可能会影响性能,所以优先推荐方法一。

修正后的完整代码片段

firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<AllUsers, UsersViewHolder>(options) {
    @Override
    protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull AllUsers model) {
        holder.setName(model.getName());
        holder.setStatus(model.getStatus());
        
        final String user_id = getRef(position).getKey();
        // 这里用方法一获取user_name
        final String user_name = model.getName();
        
        holder.mView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getActivity(), Chat.class);
                intent.putExtra("Recievers_Id", user_id);
                intent.putExtra("Recievers_Name", user_name);
                startActivity(intent);
            }
        });
    }

    @Override
    public UsersViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.all_users_layout, parent, false);
        return new UsersViewHolder(view);
    }
};
mUsersList.setAdapter(firebaseRecyclerAdapter);
return rootView;

内容的提问来源于stack exchange,提问作者user9646251

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 08:52:48