2017-12-02 3 views
0

Ich mag Daten von Feuerbasis Firestor zu einem Modell deserialisieren (Foo)Firebase Firestor Android kann nicht deserialisieren Objekt

data class Foo(
     var timestamp: Int = 0, 
     var title: String = "", 
     var question: String = "", 
     var category: String = "", 
     var content: String = "", 
     var link: String = "" 
) { 
    fun Foo() {} 
} 

mit Abfrage wie folgt:

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) 
      } 
     } 

aber erhielt Fehler 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')

Ich benutze firebase Version 11.6.2 in meinem Android-Projekt

, wo Daten in Fires wie in diesem Screenshot ist:

enter image description here

Jede Idee, warum fehlgeschlagen Deserialisierung? mit

+1

was 'println hat (it.data) 'Drucke? –

+0

danke, nachdem ich gedruckte Daten inspiziert habe, habe ich eine ungültige Daten gefunden, wobei '{timestamp = blob, title = blob, category = blob ...}' wenn andere Daten normal sind '' {timestamp = 1135129980, title = jkjk, category = xys ..} ' – hakim

Antwort

0

Versuchen:

var timestamp: Blob 

statt:

var timestamp: Int = 0 

Dann können Sie diese Methode von Blob-Objekt verwenden:

https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/Blob

+0

danke, aber leider funktioniert es nicht 'konnte Objekt nicht deserialisieren. Fehler beim Konvertieren des Wertes vom Typ com.google.firebase.firestore.Blob in String (im Feld 'timestamp') ' – hakim

+0

check meine aktualisierte Antwort – diegoveloper

+0

interessant, event wenn es möglich ist (noch nicht ausprobieren) wie kann ich blob als verwenden Zeitstempel? Ich verwende Nummer im Firestore beim Speichern der Daten – hakim

Verwandte Themen