Angular 如何在Firestore中切换布尔值
我想写一个简单的方法,它可以将一个字段(称为“isAgreed”)的值从true转换为false,反之亦然。 我从网上的一个例子开始,但现在我被卡住了。 如何更改以下代码以实现我的目标: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)
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将被覆盖。我的问题是如何添加此部分。问题不是它工作不好,而是我不知道如何实现它。