У меня проблема с чтением объекта из БД без чтения отдельных полей и восстановления объекта вручную. Простой пример кода.
Это моя модель:
data class Ingredient(val name: String, val quantity: Int){
}
// yes, just one ingredient for the moment =)
data class Recipe(val name: String, val ingredient: Ingredient){
}
Затем я сохраняю экземпляр на БД:
val i1 = Ingredient("ing1", 300)
val r = Recipe("rec1", i1)
val db = FirebaseFirestore.getInstance()
db.collection("recipies").document(r.name).set(r.ingredient)
Наконец, я пытаюсь прочитать ингредиент:
db.collection("recipies").document(r.name).addSnapshotListener {
documentSnapshot, _ ->
if(documentSnapshot != null){
val ingredient: Ingredient? = documentSnapshot.get("ingredient", Ingredient::class.java)
}
}
Проблема в том, что ингредиент нулевой. Как я могу решить проблему?
У меня была модель со списком, но я обнаружил, что даже этот более простой пример не работает.
Это структура БД: