我有Match类,其中有Team类型的其他类的列表。仅当列表为空时,才可以将新文档(匹配)上载到Firestore。一旦列表中有团队项目,尝试将其添加到Firestore时会抛出'无效参数:'Team''的实例。团队类(class)仅包含简单字段,没有其他类(class)。
从StandardMessageCodec.writeValue引发异常
更新:
我正在使用cloud_firestore:^ 0.8.2,并调用
await firestore.collection('matches').document(match.id).setData(match);
由于除了setData(接受Map)之外,没有其他方法可以上传,因此我尝试了match.teams(List):
第一个选项将失败,第二个将创建单个字符串文档成员,第三个将在成员内部创建字符串数组,这些都不是我想要的-在文档内部创建团队对象数组
最佳答案
要完全解决上述问题,请按照下列步骤操作:
脚步:
部分“match.g.dart”;//实际文件将自动生成
@JsonSerializable(anyMap:true,explicitToJson:true)
'team.g.dart'部分;//将自动生成
@JsonSerializable(anyMap:true)
[pc-name]:[project_root_dir] [username} $ flutter pub run build_runner build
我真的希望这能像我一样完全解决您的问题。
引用:https://flutter.dev/docs/development/data-and-backend/json
关于dart - Flutter CloudFirestore添加复杂类型会抛出无效参数: Instance of 'Team' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53764600/