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; }
}
添加回答
举报