gpt4 book ai didi

Android - Firestore toObject() 无法反序列化具有嵌套字符串数组的对象

转载 作者:行者123 更新时间:2023-11-30 05:01:20 27 4
gpt4 key购买 nike

这是我在 Firestore 中的 Class 数据模型: Class data model in Firestore

这是我的 Kotlin 模型中的 Class

data class Class(
var teacher: String = "",

val capacity: Int = 0,

val location: String = "",

var roster: List<String> = ArrayList() // this doesn't work and neither does String or HashMap<String, String>
)

我尝试使用协程获取类的数据:

val snapshot = database.collection("class").get().await()
val class = snapshot.toObject(Class::class.java)

但是,它未能将 roster 映射到 ArrayList 并为我提供以下堆栈跟踪:

E/FirebaseServiceImpl: getClass: FAILURE java.lang.RuntimeException: Could not deserialize object. Expected a List, but got a class java.lang.String (found in field 'roster')

--------- beginning of crash

E/AndroidRuntime: FATAL EXCEPTION: main

Process: com.packagename.myapp, PID: 8809

java.lang.RuntimeException: Could not deserialize object. Expected a List, but got a class java.lang.String (found in field 'roster')

我也试过将 roster 设为一个 String 和一个 HashMap,但是当我这样做时它说它检测到一个 ArrayList

如果我使用 toObject(),如何获取嵌套在对象中的字符串数组?

最佳答案

好的,看来代码绝对没有问题。当我删除该集合并将我的集合的种子数据重新上传到 Firebase 时,它​​解决了我的问题,并且我没有对代码进行任何更改。遗憾的是,我不能说是什么原因造成的,但如果您遇到类似的问题,也许重新导入您的数据也会有所帮助?

关于Android - Firestore toObject() 无法反序列化具有嵌套字符串数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58195250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com