在 ListView 中显示 Firebase 数据:空值问题排查
如果您在尝试检索 Firebase 数据并将其显示在中时遇到空值ListView,有可能在设置或数据检索期间发生错误。以下是对您描述的问题的更仔细的分析和解决方案:
模型类约定错误:
确保您的模型类变量名称遵守 Java 命名约定。在提供的代码中,您的类将变量 userId 初始化为 userId。按照惯例,应该是 userId。
public class Score { private String userId, score; // ... }
异步数据检索:
onDataChange() 方法是异步的,这意味着它在 Firebase 数据获取之前调用。已满员。因此,如果您在方法外部声明它,您的列表将为空。要解决此问题,请将列表声明移至 onDataChange() 内:
@Override public void onDataChange(DataSnapshot dataSnapshot) { List<String> list = new ArrayList<>(); // ... }
使用字符串或分数类显示数据:
根据您的数据结构,您可以选择将数据显示为字符串或使用 Score 类:
显示为字符串:
for (DataSnapshot ds : dataSnapshot.getChildren()) { String userId = ds.child("userId").getValue(String.class); String score = ds.child("score").getValue(String.class); list.add(userId + " / " + score); }
使用分数类显示:
for (DataSnapshot ds : dataSnapshot.getChildren()) { Score score = ds.getValue(Score.class); String userId = score.getUserId(); String score = score.getScore(); list.add(score); }
通过实施这些更正,您可以解决空值问题并显示您的 Firebase ListView 中的数据正确。
以上是为什么我的 Firebase ListView 项目显示空值?的详细内容。更多信息请关注PHP中文网其他相关文章!