Angular 如何在Firestore中切换布尔值

Angular 如何在Firestore中切换布尔值,angular,google-cloud-firestore,Angular,Google Cloud Firestore,我想写一个简单的方法,它可以将一个字段(称为“isAgreed”)的值从true转换为false,反之亦然。 我从网上的一个例子开始,但现在我被卡住了。 如何更改以下代码以实现我的目标: updateNegotiationVariable(data) { return this.firestore .collection("negotiationVariables") .doc(data.payload.doc.id)

我想写一个简单的方法,它可以将一个字段(称为“isAgreed”)的值从true转换为false,反之亦然。 我从网上的一个例子开始,但现在我被卡住了。 如何更改以下代码以实现我的目标:

updateNegotiationVariable(data) {

      return this.firestore
        .collection("negotiationVariables")
        .doc(data.payload.doc.id)
        .set({isAgreed: true }, { merge: true });
    }

这是我第一个使用Firestore的应用程序,所以我很抱歉问了一个小问题,但我在网上找不到答案。我使用Firestore数据库开发了简单的angular应用程序。

我做到了。我的问题很幼稚。 如果有人感兴趣,这就是解决方案:

updateNegotiationVariable(data) {
  let isA = data.payload.doc.data().isAgreed
  console.log(data.payload.doc.data().isAgreed)
  if (isA == true) { isA = false } else { isA = true }
  return this.firestore
    .collection("negotiationVariables")
    .doc(data.payload.doc.id)
    .set({isAgreed: isA }, { merge: true });
}

你现在的东西怎么了?请编辑问题以解释什么没有按您期望的方式工作。我的期望是,如果我启动此方法,它将检查isAgreed是否为真,然后更改为假。当它发生错误时,它将变为真。目前,它只以一种方式更改值,从false更改为true。上面的代码所说的就是设置isAgreed:true——这里没有条件表达式。您认为上述代码的哪一部分是有条件的?{merge:true}不是一个条件-它只是说将新字段与任何现有字段合并-只有isAgreed将被覆盖。我的问题是如何添加此部分。问题不是它工作不好,而是我不知道如何实现它。