Я хочу десериализовать данные из firebase firestore на модель (Foo)
data class Foo( var timestamp: Int = 0, var title: String = "", var question: String = "", var category: String = "", var content: String = "", var link: String = "" ) { fun Foo() {} }
с таким запросом:
FirebaseFirestore.getInstance().collection(COLLECTION_NAME) .orderBy(ORDER_KEY, Query.Direction.DESCENDING) .limit(LIMIT) .get() .addOnSuccessListener { snapshot -> snapshot.documents.forEach { println(it.data) // data print successfully // got error java.lang.RuntimeException: Could not deserialize object. Failed to convert a value of type com.google.firebase.firestore.Blob to int (found in field 'timestamp') val foo = it.toObject(Foo::class.java) } }
но получил ошибку java.lang.RuntimeException: Could not deserialize object. Failed to convert a value of type com.google.firebase.firestore.Blob to int (found in field 'timestamp')
java.lang.RuntimeException: Could not deserialize object. Failed to convert a value of type com.google.firebase.firestore.Blob to int (found in field 'timestamp')
Я использую firebase версии 11.6.2
в моем проекте Android
где данные в firestore похожи на этот снимок экрана:
Любая идея, почему десериализация не удалась?
Попробуйте использовать:
var timestamp: Blob
вместо :
var timestamp: Int = 0
Затем вы можете использовать этот метод из объекта Blob:
https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Blob