2016-06-13 1 views
2

Ich Migration auf Firebase neue Version und ich erhalte den folgenden Fehler zu geben, wenn sie getvalue aus dem SnapshotKann nicht Objekt vom Typ java.lang.Long konvertieren java.util.Date

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.Long to type java.util.Date 
versuchen

Dies geschieht, wenn der Snapshot in der folgenden Methode

public void getUpdates(DataSnapshot dataSnapshot){ 
    Item item = dataSnapshot.getValue(Item.class); 
    itemArrayList.add(item); 
    itemAdapter.refreshItem(itemArrayList); 
} 

ich denke, es hat etwas mit dem Item-Objekt zu getvalue versuchen zu tun hat, aber es funktionierte vor, so kann ich nicht herausfinden, was los ist. Ich benutze tatsächlich Daten.

Firebase Artikel Struktur

Firebase item structure

Item-Objekt

private String title; 
private String description; 
private HashMap<String, ItemPicture> picturesHashMap; 
private Date publishedDate; 
private Date deletionDate; 
private String condition; 
private String delivery; 
private String uid; 
private int reported; 
private boolean given; 
private Location location; 
private String frontImage; 
private String uniqueID; 

Jede mögliche Hilfe würde sehr geschätzt werden.

Antwort

5

Firebase unterstützt keine Datum Klassenobjekte, also müssen Sie sie als long/timestamp speichern, die Sie bereits getan haben.

1463845578489 ist ein langer, die in einer langen Variablen gespeichert werden muss und kein Datum

Änderung Ihrer Variablendeklaration zu

private long publishedDate; 

Dann lange auf eine gültige Date-Objekt konvertieren Sie diese verwenden können

Date d = new Date(publishedDate); 
+0

Vielen Dank! Und danke, dass du mir so geholfen hast :) – Isabelle

+0

genial, aber als ich es ausgedruckt habe, zeigte es 05.30, als die tatsächliche Zeit 12.38 war und ich Format DateFormat df = new SimpleDateFormat ("HH: mm: ss"); – Sykox