我目前在尝试使用 Firestore 的“arrayUnion”方法将元素添加到数组字段来更新 Firestore 文档时遇到问题。我在 Angular 应用程序中使用 Firestore 和 AngularFire,我遇到的具体错误是:
类型“FieldValue”缺少类型“CarAttachment[]”中的以下属性:长度、弹出、推送、连接
预期的类型来自属性“attachments”,该属性在此处声明为“Partial”类型。
这是我用于此操作的相关代码片段:
addCarAttachment(carId: string, attachment: CarAttachment) {
return this.firestore.collection<Car>('car').doc(carId).update({
attachments: FieldValue.arrayUnion(attachment),
});
}
此外,我还为“Car”和“CarAttachment”定义了以下接口:
export interface Car {
id: string;
attachments: CarAttachment[];
created_at: Date | Timestamp;
updated_at?: Date | Timestamp;
}
export interface CarAttachment {
doc_name: string;
doc_url: string;
doc_type: string;
expiration_time: Date | Timestamp;
uploaded_at: Date | Timestamp;
}
我正在寻求建议或解决方案来帮助我克服此错误,并通过在使用 AngularFire 时使用“arrayUnion”将元素添加到“attachments”数组字段来成功更新我的 Firestore 文档。
正如 @Hezy Ziv 所说,我只需要在 addCarAttachment 中使用任何一个
addCarAttachment(carId: string, attachment: CarAttachment) {
return this.firestore.collection<any>('car').doc(carId).update({
attachments: FieldValue.arrayUnion(attachment),
});
}