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
相关产品推荐
相关产品推荐

