2 回答
TA贡献1826条经验 获得超6个赞
您代码中的问题在于您的Album类中的字段名称与数据库中的属性名称不同。您的Album班级中有一个名为的字段,thumbAndID但在您的数据库中,我认为id它是不正确的。名称必须匹配。有两种方法可以解决这个问题。
第一个是删除当前数据并使用正确的名称再次添加它。所以你的字段 id 应该thumbAndID在数据库中也有相同的名称。此解决方案仅在您处于测试阶段时才有效。
在我看来,第二种方法更优雅,是使用annotations. 因为我看到您正在使用私有字段和公共 getter,所以您应该只在 getter 前面使用PropertyName注释。所以你的Album类应该是这样的:
public class Album{
private String thumbAndID;
private String albumName;
private String numberOfSongs;
private String albumYear;
public Album() {}
public Album(String thumbAndID, String albumName, String numberOfSongs, String albumYear) {
this.thumbAndID = thumbAndID;
this.albumName = albumName;
this.numberOfSongs = numberOfSongs;
this.albumYear = albumYear;
}
@PropertyName("id")
public String getThumbAndID() {
return thumbAndID;
}
public void setThumbAndID(String thumbAndID) {
this.thumbAndID = thumbAndID;
}
@PropertyName("name")
public String getAlbumName() {
return albumName;
}
public void setAlbumName(String albumName) {
this.albumName = albumName;
}
@PropertyName("numberofsongs")
public String getNumberOfSongs() {
return numberOfSongs;
}
public void setNumberOfSongs(String numberOfSongs) {
this.numberOfSongs = numberOfSongs;
}
@PropertyName("year")
public String getAlbumYear() {
return albumYear;
}
public void setAlbumYear(String albumYear) {
this.albumYear = albumYear;
}
}
如果您打算使用此解决方案,则无需在数据库中更改任何其他内容。
TA贡献1757条经验 获得超8个赞
您的构造函数参数名称应与您的 Firebase db 键匹配。像这样修改您的相册类构造函数。
public Album(String id, String name, String numberofsongs, String year) {
this.thumbAndID = id;
this.albumName = name;
this.numberOfSongs = numberofsongs;
this.albumYear = year;
}
添加回答
举报