【问题标题】:How to update a firebase doc and not override existing values如何更新 Firebase 文档而不覆盖现有值
【发布时间】:2019-03-22 00:44:43
【问题描述】:

插图显示了我的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 对象是一个数组,映射值为namephonenumber

【问题讨论】:

    标签: angular typescript firebase google-cloud-firestore


    【解决方案1】:

    Use update() instead of set().

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

    【讨论】:

    • 添加了一个新的phonebook 对象,而不更新现有的对象
    • 如果您只是想无条件地将一个项目附加到一个数组中,那么您将需要使用 FieldValue.arrayUnion。我不知道角绑定是什么,但核心文档在这里:firebase.google.com/docs/firestore/manage-data/…
    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 2020-08-02
    • 1970-01-01
    • 2017-07-22
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多