【发布时间】:2020-10-14 16:18:20
【问题描述】:
我有如下数据类
data class Course (
val title: String?=null,
val image: String?=null,
val guid: String?=null,
val price: String?=null,
val category: String?=null,
val instructorName: String?=null,
val instructorCode: String?=null,
val rating: String?=null
)
当我推送数据一切正常时,我的数据在 Firestore 中是这样的(对不起,我有 2 种数据,因为尝试和错误)
但我的问题是当我在视图模型中使用此执行时
val progressOne = async {
firestore.collection("courses_popular")
.get()
.addOnCompleteListener {task ->
if(task.isSuccessful){
val doc = task.result
if(doc != null){
val res = doc.toObjects(Course::class.java)
popularData.postValue(Response(res, ResponseStatus.SUCCESS))
}else{
popularData.postValue(Response(responseStatus = ResponseStatus.ERROR, msg = "Document null"))
}
}
else{
popularData.postValue(Response(responseStatus = ResponseStatus.ERROR, msg = "${task.exception?.message}"))
}
}
}
为什么我总是得到instructorName 和instructorCode 为空,但是值是存在的? (这是我打印控制台时得到的)
MateriPopulerAdapter: Course(title=Belajar Matematika tingkat SMP, 图片=https://storage.googleapis.com/skill-baru.appspot.com/courses_popular/-MI7nXMm1EsCqQX2Shfr/ilustrasi-matematika.jpg, guid=1,价格=500000,类别=MTK,instructorName=null, coachCode=null, rating=4)
-
尝试 将所有骆驼的情况改为正常情况。
数据类课程( val 标题:字符串?=null, val图像:字符串?=空, val guid: String?=null, val价格:字符串?=空, val 类别:String?=null, val 讲师姓名:字符串?=null, val 讲师代码:字符串?=空, val 评级:字符串?= null )
错误控制台
D/MateriPopulerAdapter: Course(title=Belajar Matematika tingkat SMP, image=https://storage.googleapis.com/skill-baru.appspot.com/courses_popular/-MI7nXMm1EsCqQX2Shfr/ilustrasi-matematika.jpg, guid=1, price=500000, category=MTK, instructorname=null, instructorcode=null, rating=4)
10-15 15:20:58.984 13736-13736/com.skillbaru.apps W/TabLayout: MODE_SCROLLABLE + GRAVITY_FILL is not supported, GRAVITY_START will be used instead
10-15 15:20:59.005 13736-13736/com.skillbaru.apps D/AndroidRuntime: Shutting down VM
【问题讨论】:
-
我发现了一个旧的issue,其中使用camelCase影响了字段的检索,是否可以尝试删除整个文档并仅使用小写字母,看看它是如何工作的?跨度>
-
@Emmanuel 你的意思是,我必须将 var 更改为
instructorname和instructorcode? -
是的,但也尝试删除字段名称为驼峰式的文档
-
仍然无法正常工作,我已经全部更改并删除了驼峰式大小写,仍然返回 null @Emmanuel
-
等一下,在我清理我的应用程序并从零开始之后,它已经存在了。多么奇怪
标签: java android firebase google-cloud-firestore