Это моя Class
модель данных в Firestore:
Вот Class
в моей модели Kotlin.
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>
)
Iпопытаться получить данные для класса как таковые с помощью сопрограмм:
val snapshot = database.collection("class").get().await()
val class = snapshot.toObject(Class::class.java)
Однако, он не может отобразить roster
в ArrayList и дает мне следующую трассировку стека:
E / FirebaseServiceImpl: getClass: FAILURE java.lang.RuntimeException: Не удалось десериализовать объект. Ожидается список, но есть класс java.lang.String (находится в поле 'roster')
--------- начало сбоя
E / AndroidRuntime: FATALИСКЛЮЧЕНИЕ: main
Процесс: com.packagename.myapp, PID: 8809
java.lang.RuntimeException: Не удалось десериализовать объект. Ожидается список, но есть класс java.lang.String (находится в поле 'roster')
Я также пытался сделать roster
String и HashMap, но когда я это делаю, он говоритон обнаруживает ArrayList
.
Как я могу получить массив строк, вложенных в объект, если я использую toObject()
?