1 回答

TA貢獻1836條經驗 獲得超5個贊
您的代碼中的問題在于您的ALL_USERS類中有一個名為的字段Date,但您使用的是一個名為的 getter getDate(),這是不正確的,因為 Firebase 正在數據庫中查找名為date而不是的字段Date。看到小寫d字母與大寫字母了D嗎?
有兩種方法可以解決此問題。第一個是通過根據Java Naming Conventions重命名字段來更改模型類。所以你的模型類應該是這樣的:
public class ALL_USERS {
private String name, sonyTV;
private long date;
public ALL_USERS() {}
public ALL_USERS(String name, String sonyTV, long date) {
this.name = name;
this.sonyTV = sonyTV;
this.date = date;
}
public String getName() { return name; }
public String getSonyTV() { return sonyTV; }
public long getDate() { return date; }
}
請參閱在此示例中,有private字段和公共 getter。還有一個更簡單的解決方案,直接在公共字段上設置值,如下所示:
public class ALL_USERS {
public String name, sonyTV;
public long date;
}
現在只需刪除當前數據并使用正確的名稱再次添加它。此解決方案僅在您處于測試階段時才有效。
還有第二種方法,就是使用annotations. 因此,如果您更喜歡使用私有字段和公共 getter,則應僅在 getter 前面使用PropertyName注釋。所以你的ALL_USERS班級應該是這樣的:
public class ALL_USERS {
private String name, SonyTV;
private long Date;
public ALL_USERS() {}
public ALL_USERS(String name, String sonyTV, long date) {
this.name = name;
SonyTV = sonyTV;
Date = date;
}
public String getName() { return mame; }
@PropertyName("SonyTV")
public String getSonyTV() { return SonyTV; }
@PropertyName("Date")
public long getDate() { return Date; }
}
添加回答
舉報