Firestore 更新错误:在 Firestore 更新操作中使用 arrayUnion

问题描述 投票:0回答:1

我目前在尝试使用 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 文档。

angular typescript firebase google-cloud-firestore angularfire
1个回答
0
投票

正如 @Hezy Ziv 所说,我只需要在 addCarAttachment 中使用任何一个

addCarAttachment(carId: string, attachment: CarAttachment) {
  return this.firestore.collection<any>('car').doc(carId).update({
    attachments: FieldValue.arrayUnion(attachment),
  });
}
© www.soinside.com 2019 - 2024. All rights reserved.