如何获取Firebase中push()生成的二级随机key对应数据并展示在Android RecyclerView
解决方法
第一步:修改Pacientes实体类
新增key字段存储push方法生成的随机键,如果要避免该字段参与Firebase序列化可加@Ignore注解:
public class Pacientes { // 你原有定义的字段保持不变 private String key; // 原有getter、setter方法保持不变 public String getKey() { return key; } public void setKey(String key) { this.key = key; } }
第二步:修改数据监听的遍历逻辑
通过DataSnapshot的getKey()方法直接获取红色标记的随机生成键,赋值给实体对象即可:
database.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { list.clear(); // 每次数据更新先清空列表,避免重复加载 for (DataSnapshot dataSnapshot : snapshot.getChildren()){ Pacientes pacientes = dataSnapshot.getValue(Pacientes.class); // 获取push生成的随机key pacientes.setKey(dataSnapshot.getKey()); list.add(pacientes); } adapter.notifyDataSetChanged(); } @Override public void onCancelled(@NonNull DatabaseError error) { // 可自行补充错误处理逻辑,比如吐司提示数据获取失败 } });
第三步:适配器绑定数据
在自定义Adapter的onBindViewHolder方法中,从Pacientes实例里取出对应字段(包括新增的key字段),绑定到列表Item的对应控件,就能展示黄色标记的所有数据了。
内容的提问来源于stack exchange,提问作者RiseHit
相关产品推荐
相关产品推荐

