Arrays AngularFire2:创建文档并设置地图数组

Arrays AngularFire2:创建文档并设置地图数组,arrays,typescript,google-cloud-firestore,angularfire2,angularfire,Arrays,Typescript,Google Cloud Firestore,Angularfire2,Angularfire,请求的行为: 我想创建一个AngularService,它向Firestore添加一个带有两个字段的文档。第一个字段是用用户数据填充的地图。第二个字段是地图数组。它应该从第一个字段接收映射作为第一项 当前状态 如果我只添加映射(第一个字段)并注释掉映射数组(第二个字段),该函数将成功创建和填充文档 问题 如果我添加设置数组的代码,该函数将不再工作。即使使用相同的数据调用两个字段,我也会收到以下错误: FirebaseError:调用函数DocumentReference.set()时无效 数据。

请求的行为:
我想创建一个AngularService,它向Firestore添加一个带有两个字段的文档。第一个字段是用用户数据填充的地图。第二个字段是地图数组。它应该从第一个字段接收映射作为第一项

当前状态
如果我只添加映射(第一个字段)并注释掉映射数组(第二个字段),该函数将成功创建和填充文档

问题
如果我添加设置数组的代码,该函数将不再工作。即使使用相同的数据调用两个字段,我也会收到以下错误:

FirebaseError:调用函数DocumentReference.set()时无效 数据。不支持的字段值:未定义(在字段中找到 集团执行委员会)

我怎样才能解决这个问题?如何创建贴图数组并将第一个贴图推送到该数组中

我的型号:

导出接口组{
组长?:{
groupLeaderID?:字符串;
groupLeaderName?:字符串;
groupLeaderImage?:字符串;
};
//排列
集团执行董事会?:{
boardMemberID?:字符串;
boardMemberName?:字符串;
boardMemberImage?:字符串;
}[];
}
试试这个:

groupLeader: {
      groupLeaderID: author.uid,
      groupLeaderName: author.displayName,
      groupLeaderImage: author.profilePhoto
    },
groupExecutiveBoard: [{
      boardMemberId: author.uid,
      boardMemberName: author.displayName,
      boardMemberImage: author.profilePhoto
}],

不幸的是,这不起作用。然后我得到了多个ts lint,包括
预期的类型来自属性“groupExecutiveBoard”,该属性在这里的类型“GroupID”上声明
。据我所知,这意味着。我无法将你的方法分配给对象[]数组类型我更新了我的答案。试着把花括号换成方括号我很抱歉。我认为你的第一个解决方案是正确的。我在这里的帖子描述中输入了一个错误(在我的代码中boardMemberID的最后一个字母是大写字母“D”,这里是“D”),然后将你的解决方案复制粘贴到我的代码中。你能再提出你的第一个解决方案吗?然后我可以把它标记为已解决:)谢谢你的帮助!但是你试过更新吗?因为这会在数组中创建贴图。这不是你想做的吗?或者用字符串对你来说很好吗?好吧,我明白你的意思:)我又换了我的第一个解决方案。