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

Firestore在用户文档子集合存储数据的方法及报错修复

修复方案

1. 核心错误原因

你在saveInSubcollectionToRemote方法中,.doc('uid')传入的是固定字符串'uid',而非当前用户的真实uid值,和你之前写的saveToRemote方法逻辑不一致,才会导致生成名为uid的错误文档。

2. 修正后代码

Future saveInSubcollectionToRemote() async{
  Map<String, dynamic> weightData = UserManager.userWeights;
  // 从已保存的用户数据中取真实uid,替换固定字符串'uid'
  String currentUid = UserManager.userdata['uid'];
  return await FirebaseFirestore.instance.collection('users')
      .doc(currentUid)
      .collection('weights')
      // 如果你不需要自定义文档ID,也可以用add方法自动生成ID,避免同体重数据覆盖
      // 可选写法:.add(weightData);
      .doc(weightData['userWeight'].toString())
      .set(weightData);
}

3. 额外注意事项

  • 确保调用该方法前UserManager.userdata已经完成初始化且不为空,否则会抛出空指针异常
  • 如果存在同一用户多次录入相同体重的场景,不建议用体重值作为子集合文档ID,会导致旧数据被覆盖,推荐使用Firestore自动生成文档ID,或者用记录时间戳作为文档ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:54:04