You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore转Assignmentsdata报错:Expected BEGIN_ARRAY but was NUMBER

错误原因排查思路
  • 检查是否存在类型不匹配的文档:虽然你确认Firestore文档的progress字段是数组,但可能有部分旧文档未同步更新,progress仍为数字类型。直接在Firestore控制台用筛选条件progress is number排查,确保所有目标文档的progress都是数组类型。

  • 核对字段映射准确性:

    • 确认Assignmentsdata类的progress字段名大小写与Firestore文档完全一致(Firestore字段名区分大小写);
    • 若用Gson转换,检查是否给progress字段加错@SerializedName注解,导致映射到其他数字类型字段。
  • 检查类字段定义是否正确:

    • 使用Firebase的toObject方法时,确保progress字段定义为List<?>(如List<Integer>)或包装类数组(如Integer[]),避免原始类型数组int[]带来的适配问题;
    • 若自定义了TypeAdapter或Converter,排查是否干扰了progress字段的解析逻辑。
  • 排查Gson反序列化配置:如果用Gson转换,检查全局配置中是否设置了自动转换空值、数组默认值等规则,导致解析时误将数字类型识别为progress字段;同时确认是否给progress字段绑定了错误的JsonAdapter。

  • 排除本地缓存干扰:Firestore默认优先读取本地缓存,若缓存中的文档progress仍为数字类型,即使云端已更新也会触发错误。可以强制从服务器读取数据(例如调用get(Source.SERVER)),或清除App本地缓存后重试。

  • 确认是否存在嵌套字段混淆:检查Assignmentsdata类及其嵌套对象中,是否有其他名为progress的数字类型字段,避免解析时混淆字段路径。

内容的提问来源于stack exchange,提问作者Irfan Yaqub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:45:39