我正在使用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):在 com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:213)
查看依赖关系树,我发现 Firebase 使用的是 Jackson 映射器 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 功能,但我认为这不是一个可行的选择,因为我将更改市长版本。