So ignorieren Sie neue Felder für ein Objektmodell mit Firebase 1.0.2
Ich benutze die letzte Versionim Moment von Firebase-Abhängigkeit, die 1.0.2 ist und ich habe Probleme damit, meine Pojos richtig zu analysieren.
Die Sache ist, dass das Schema jederzeit geändert werden kann, aber ich möchte nicht, dass meine App damit abstürzt:
D / AndroidRuntime (14097): Herunterfahren von VM W / dalvikvm (14097): threadid = 1: Thread wird mit nicht erfasster Ausnahme beendet (group = 0x40a451f8) E / AndroidRuntime (14097): FATAL EXCEPTION: main E / AndroidRuntime (14097): com .firebase.client.FirebaseException: Fehler beim Absprung auf Typ E / AndroidRuntime (14097): at com.firebase.client.DataSnapshot.getValue (DataSnapshot.java:213)
Wenn ich in den Abhängigkeitsbaum schaue, sehe ich, dass Firebase Jackson Mapper 1.9.7 verwendet, also die Annotation@JsonIgnoreProperties(ignoreUnknown = true")
ist keine Option. Außerdem ist der Object Mapper in dieses Firebase-Objekt eingebunden, sodass ich das nicht konfigurieren kannDeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
Eigentum (DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES
für Jackson 1.9 und früher).
Gibt es eine Möglichkeit, diese Eigenschaft als Anmerkung auf Klassenebene festzulegen oder den Mapper oder einen anderen Mechanismus zu konfigurieren?
Die beste Lösung wäre, dass Firebase 1.0.3 mit Jackson 2.0 anfängt, aber nicht weiß, ob sie sich gerade darum kümmern.
Hinweis: Ich habe bereits darüber nachgedacht, die transitive Jackson 1.9.7-Abhängigkeit auszuschließen und Jackson 2.0 hinzuzufügen, damit ich auf diese Funktion ignoreUnknown zugreifen kann. Ich halte sie jedoch nicht für eine gangbare Wahl, da ich die Bürgermeister-Version ändern würde.