Angular 如何更新firebase文档而不覆盖现有值

Angular 如何更新firebase文档而不覆盖现有值,angular,typescript,firebase,google-cloud-firestore,Angular,Typescript,Firebase,Google Cloud Firestore,下图显示了我的firebase db结构: 我想要的是根据指定的文档id使用新值更新文档Phonebook条目,下面的代码将使用新值覆盖所有文档值,而不是更新 insertPhonebookEntry(entry: any) { if (entry.id) { this.db.collection('PhonebookEntries').doc(entry.id).set({ PhoneBook: { Name: entry.name, PhoneNumber: e

下图显示了我的firebase db结构:

我想要的是根据指定的文档id使用新值更新文档
Phonebook
条目,下面的代码将使用新值覆盖所有文档值,而不是更新

insertPhonebookEntry(entry: any) {
if (entry.id) {
  this.db.collection('PhonebookEntries').doc(entry.id).set({
    PhoneBook: {
    Name: entry.name,
    PhoneNumber: entry.phonenumber
    }
  });
}
}

Phonebook
对象是一个数组,其映射值为
name
phonenumber


添加了一个新的
phonebook
对象,而现有的对象不更新。如果您只想无条件地将一个项目附加到数组中,则需要使用FieldValue.arrayUnion。我不知道角度绑定是什么,但核心文档在这里:
  this.db.collection('PhonebookEntries').doc(entry.id).update({
    PhoneBook: {
      Name: entry.name,
      PhoneNumber: entry.phonenumber
    }
  });