我有一个新的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
最终只能在索引List
,567
,568
处拥有值。 / p>
我有预感,今天当有一定数量的整数键时,569
决定将Firebase Admin SDK
识别为List,因为它确实是一个List。
很公平,所以我修改了所有代码以生成Map
。但这导致了List<List<MyObject>> responses
在反序列化时期望一个List,但得到一个类java.util.HashMap
我注意到在Exception
上使用较少的键执行我的程序时发生了这种情况。
在这种情况下,对象是否被映射为List或Map的是什么?我对关键数量转换的假设有效吗?当然,我的结构中总有一些东西无效,但是它被另一个程序更新了,我进行了三次检查。