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

Flutter中向Firebase文档添加数组时遇问题求助

问题分析与解决

你的代码问题出在数组字段的赋值逻辑上:

'Tags': [tags]

这里你把传入的tags数组额外包裹了一层数组,导致最终存储的是二维数组(比如传入['Italian', 'Romanian']会变成[['Italian', 'Romanian']]),这不符合预期结构,进而引发Firestore的数据类型异常。

修正后的代码

直接将tags赋值给'Tags'字段即可,无需额外嵌套:

void addCategory({required String addedCategory, required List tags}) {
  FirebaseFirestore.instance.collection("Category").doc(addedCategory).set({
    'name': addedCategory,
    'Tags': tags // 移除外层的[]
  }).then((value) {
    emit(CategoryAdded());
  });
}

你的调用代码是正确的,无需修改:

UserCubit.get(context).addCategory(
  addedCategory: 'Resturants', tags: ['Italian', 'Romanian']
);

修改后,Firestore文档的Tags字段会正确存储一维数组,与预期结构一致,异常即可消除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:11:11