sai*_*der 13 java android firebase
我使用的最后一个版本,此刻火力地堡的依赖,这是1.0.2,我有问题越来越成为正确分析我的POJO.
问题是,架构可以随时更改,但我不希望我的应用程序崩溃:
D/AndroidRuntime(14097):关闭VM W/dalvikvm(14097):threadid = 1:线程退出,未捕获异常(组= 0x40a451f8)E/AndroidRuntime(14097):致命异常:主E/AndroidRuntime(14097):com .firebase.client.FirebaseException:无法跳转到类型E/AndroidRuntime(14097):at com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:213)
查看依赖关系树,我得知Firebase正在使用Jackson mapper 1.9.7,因此注释@JsonIgnoreProperties(ignoreUnknown = true")不是一个选项.此外,对象映射器被包装到此Firebase对象中,因此我无法配置该DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES属性(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES对于Jackson 1.9及之前).
有没有办法设置此属性,作为类级别注释或配置映射器或任何其他机制?
最好的解决方案是Firebase 1.0.3开始使用Jackson 2.0,但不知道这是否是他们现在关心的事情.
注意:我已经考虑过排除传递的Jackson 1.9.7依赖关系并添加Jackson 2.0以便我可以访问这个ignoreUnknown功能,但我不认为这是一个可行的选择,因为我将改变市长版本.
min*_*ser 37
对于已经转移到Google正式版Firebase的用户(截至2016年5月29日),您可以使用@Exclude而不是@JsonIgnore或@JsonProperty.这是他们的文件的链接.
例:
public class dataPacket{
public String data;
...
@Exclude
public String getData(){return data;}
}
Run Code Online (Sandbox Code Playgroud)
Dim*_*ira 22
更新:
正如其他人所指出的,注释@Exclude是现在使用它的正确方法.但是,如果你使用Kotlin将无法正常工作.用于Kotlin使用
@get:Exclude var data: String? = nil
//or
@set:Exclude var data: String? = nil
//or both
@set:Exclude @get:Exclude var data: String? = nil
Run Code Online (Sandbox Code Playgroud)
因为注释只能应用于生成的字段而不能应用于属性.
老答案:
如果我使用了transient关键字,我将从GSON来到Firebase.这也适用于Firebase
public transient String data;
Run Code Online (Sandbox Code Playgroud)
Cha*_*ham 14
正如接受的答案所述,Firebase现在使用Jackson,因此您可以注释您希望忽略的所需方法
@JsonIgnore
Firebase改变了一切.活泉.现在改用它:
@排除
| 归档时间: |
|
| 查看次数: |
15133 次 |
| 最近记录: |