反序列化为地图或列表 - Firebase管理Java SDK

时间:2018-02-24 16:00:41

标签: java firebase firebase-realtime-database orm firebase-admin

背景

我有一个新的Firebase实时数据库,我使用Firebase Admin Java SDK每天运行一些聚合。这些汇总在过去几天有效,但今天我遇到了Exception陈述

  

反序列化时映射,但得到了一个类java.util.ArrayList

我收到此消息的字段映射了Integers的{​​{1}} Lists的可选递增。例如,我有

Objects

在将此标记为重复之前,请先阅读问题以了解其独特之处。此异常还有其他SO问题,但他们不会问我的问题问题

观察

请注意新数据如何导致此responses: 4: someField: 'someValue', anotherField: 'anotherValue' 6: someField: 'someValue', anotherField: 'anotherValue' 而不是无效Exception,因为它之前使用的是真实数据。我注意到发生ORM的特定孩子比其他孩子拥有更多的钥匙。

我将上面的结构映射为Exception(删除了Map<String, List<MyObject>> responses名称和实际字段,以减少其注意力。)我认为最好使用MyObject,因为Map最终只能在索引List567568处拥有值。 / p>

我有预感,今天当有一定数量的整数键时,569决定将Firebase Admin SDK识别为List,因为它确实是一个List。

很公平,所以我修改了所有代码以生成Map。但这导致了List<List<MyObject>> responses

  

在反序列化时期望一个List,但得到一个类java.util.HashMap

我注意到在Exception上使用较少的键执行我的程序时发生了这种情况。

问题

在这种情况下,对象是否被映射为List或Map的是什么?我对关键数量转换的假设有效吗?当然,我的结构中总有一些东西无效,但是它被另一个程序更新了,我进行了三次检查。

0 个答案:

没有答案