如果文档中不存在字段,如何使用angularfire2更新/设置文档

时间:2019-01-08 18:42:12

标签: javascript angular set google-cloud-firestore angularfire2

我正在尝试更新Firestore文档。 如果该字段已经存在,它将更新文档中的字段。 如果不存在,则不会更新或捕获错误。

我在做什么错了?

HTML:

[(ngModel)]="tool.toolname"

TS:

updateTool(tool) {
    this.db
    .collection('tools')
    .doc(`${this.tool_id.getValue()}`)
    .set(tool)
    .then(function() {
      console.log("Document successfully written!");
    })
    .catch(function(error) {
      console.error("Error writing document: ", error);
    });
  }

编辑: 找到了可行的解决方案-现在在firestore中创建了工具名,但没有嵌套的对象。

HTML:

[(ngModel)]="tool.toolname"
[(ngModel)]="tool.box.size"

TS:

  tool = {
    toolname: '',
    box: {
      size: 0
    }
  };

  updateTool(tool) {
    this.db
      .collection('tools')
      .doc(`${this.tool_id.getValue()}`)
      .set(tool)
      .then(function () {
        console.log("Document successfully written!");
      })
      .catch(function (error) {
        console.error("Error writing document: ", error);
      });
  }

0 个答案:

没有答案