gpt4 book ai didi

arrays - AngularFire2:创建文档并设置 map 数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:50 24 4
gpt4 key购买 nike

要求的行为:
我想创建一个 AngularService,它将一个文档添加到具有两个字段的 Firestore。第一个字段是一张 map ,其中填充了用户数据。第二个字段是 map 数组。它应该从第一个字段接收 map 作为第一项。

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

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

FirebaseError: Function DocumentReference.set() called with invalid data. Unsupported field value: undefined (found in field groupExecutiveBoard)

我该如何解决?如何创建 map 数组并将第一个 map 推送到它?

我的模型:

export interface Group {

groupLeader?: {
groupLeaderID?: string;
groupLeaderName?: string;
groupLeaderImage?: string;
};

//array
groupExecutiveBoard?: {
boardMemberID?: string;
boardMemberName?: string;
boardMemberImage?: string;
}[];

}

我的服务

constructor(private angularFirestore: AngularFirestore) { }

addGroup(author: User) {
const groupsCollection = this.angularFirestore.collection<GroupID>('groups');

groupsCollection.add({

// sets groupleader if "GroupExecutiveBoard" is commented out
groupLeader: {
groupLeaderID: author.uid,
groupLeaderName: author.displayName,
groupLeaderImage: author.profilePhoto
},

//should set user data as first array item. Does not work
groupExecutiveBoard: {
boardMemberId: author.uid,
boardMemberName: author.displayName,
boardMemberImage: author.profilePhoto
}[0],

});
}

最佳答案

试试这个:

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

关于arrays - AngularFire2:创建文档并设置 map 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com