2016-05-19 6 views
5

Я использую autovalue для своих объектов и аннотировал их, чтобы разрешить json-синтаксический анализ.New firebase json annotations

Есть новые аннотации в новом SDK: Exclude, IgnoreExtraProperties, ThrowOnExtraProperties и @PropertyName: https://firebase.google.com/docs/reference/android/com/google/firebase/database/PropertyName. Но PropertyName, кажется, отсутствует в sdk ..

ответ

5

Мы пропустили аннотацию @PropertyName в этом выпуске Firebase SDK для Android. Он будет включен в следующее обновление. Пока нет новостей о том, когда это произойдет.

Смотрите этот ответ способа использовать Джексон явно с последним Firebase SDK: How to deserialise a subclass in Firebase using getValue(Subclass.class)

+0

Будет ли я быть хорошо, если я придерживаться '@JsonProperty' аннотации Джексона до тех пор ? –

+0

Да. Как только мы представим свойство, я рекомендую вам переключиться, так как он значительно уменьшит размер вашего apk. –

+1

Я включил компиляцию jackson-аннотаций: 2.7.4 и jackson-databind: 2.7.4, но похоже, что firebase игнорирует аннотации '@ JsonProperty' и' @ JsonSerialize'. –

3
BEFORE 
@JsonIgnoreExtraProperties(ignoreUnknown=true) 
public class ChatMessage { 
    public String name; 
    public String message; 
    @JsonIgnore 
    public String ignoreThisField; 
} 

dataSnapshot.getValue(ChatMessage.class) 
AFTER 
public class ChatMessage { 
    public String name; 
    public String message; 
    @Exclude 
    public String ignoreThisField; 
} 

dataSnapshot.getValue(ChatMessage.class) 

Приведи к https://firebase.google.com/support/guides/firebase-android#update_your_java_model_objects_numbered