从Firestore映射Java对象时courseID字段返回null问题排查
问题原因
Firestore的Java SDK遵循JavaBean命名规范进行对象映射:
- 你的
LessonGroup类私有字段命名为courseId(小驼峰格式,第二个单词首字母大写、后续字母小写) - 但对应的getter方法却写为
getCourseID()(ID全大写)
这种命名不匹配会导致Firestore无法识别该getter与courseId字段的关联,反序列化时无法将文档中的有效值赋值给对象属性,最终读取时courseId返回null。
解决方案
修改LessonGroup类的getter方法名,使其严格符合JavaBean规范:
// 替换原有的getCourseID方法 public String getCourseId() { Log.d("Is Null", String.valueOf(courseId==null)); return this.courseId; }
如果后续需要添加setter方法,也要保持命名一致:setCourseId(String courseId)。
补充说明:如果Firestore文档中的字段名本身是courseID(全大写ID),则需要同步将Java类的私有字段改为courseID,并保持getter/setter命名为getCourseID()/setCourseID(),确保两端命名完全匹配。
内容的提问来源于stack exchange,提问作者Camille Ma
相关产品推荐
相关产品推荐

