在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中文網其他相關文章!