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

运行代码报`String is not a subtype of type int of 'index'`错误求助

错误原因排查
  • 报错type 'String' is not a subtype of type 'int' of 'index'的核心逻辑是:你当前使用的values变量实际是List类型,List要求用int类型的下标访问元素,但你传入了字符串类型的键"cont",类型不匹配直接触发报错。你后续加.toString()的修改不生效,是因为报错发生在访问values["cont"]的阶段,还没执行到调用toString的步骤。
  • 从你给出的values结构来看,还有一个逻辑问题:cont字段根本不在values的顶层键中,而是嵌套在以随机ID(比如-Md0S2rcK4NSx0klfBoZ)为键的子Map里,哪怕values是Map类型,直接用values["cont"]也拿不到对应值。
  • 大概率你是在获取Firebase快照数据时误用了API:如果调用DataSnapshot的.values属性,拿到的是所有值的集合列表,而非完整的键值对Map。
可行解决方案

情况1:要获取所有子项中的cont字段值

首先修正你获取values的方式,拿到正确的Map结构后遍历筛选即可:

// 从快照获取数据时直接取value转Map,不要调用.values
Map values = snapshot.value as Map;

values.forEach((key, value) {
  // 筛选出包含cont字段的子Map
  if (value is Map && value.containsKey("cont")) {
    print(value["cont"]);
  }
});

情况2:要访问顶层固定字段

直接用顶层存在的键访问即可,比如:

// 访问用户名
print(values["name"]);
// 访问评分
print(values["Rating"]);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:12:07