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

Flutter Web使用Firebase Firestore .add()提交表单后返回400 Bad Request错误排查求助

Flutter Web使用Firebase Firestore .add()提交表单后返回400 Bad Request错误排查求助

各位好,我最近碰到一个特别棘手的问题,折腾好一阵都没解决,想请大家帮忙看看:

我开发了一个带多标签页的Flutter Web注册表单(分客户和工人两种注册类型),通过Firebase Firestore的.add()方法把表单数据提交到名为registrations的集合里。前几天功能都正常,结果不知道从什么时候开始,提交时控制台突然报出这个错误:

FirebaseError: FirebaseError: [code=invalid-argument]: Request is missing required field: write.operations

我提交数据的核心代码是这样的:

await FirebaseFirestore.instance.collection("registrations").add({ 
  "fullName": fullNameController.text.trim(), 
  "email": emailController.text.trim(), 
  // 其他表单字段... 
});

为了排查问题,我已经做了这些尝试:

  • 确认在调用.add()之前,所有必填字段都有合法的非空值,没有无效内容
  • 检查Firebase安全规则,已经设置成完全允许读写(allow read, write: if true;),排除了规则拦截的可能
  • 把提交的数据简化成只有一个键值对,测试是不是数据量太大导致的问题,但还是报错
  • 在Flutter Web(Chrome浏览器)环境下测试,每次都返回400的invalid-argument错误
  • 把完全相同的代码放到Flutter Android模拟器里运行,居然一切正常,没有任何错误
  • 反复核对了所有文本控制器,确认没有null或者空值的情况

我原本预期的是:.add()调用能成功在registrations集合中创建新文档,Firestore后台会像往常一样返回新文档的ID,浏览器控制台和终端都不应该出现任何错误。

有没有朋友遇到过类似的问题?或者能给我一些新的排查方向?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 13:18:13