使用FieldValue切换Firestore中的布尔字段



我目前正在尝试为Firestore布尔字段创建一个切换函数。我想知道是否有任何方法可以通过.update((函数直接切换这个布尔字段,并避免事先必须.get((该字段的原始值。

admin.firestore().collection('users').doc(uid).update({
field: !field
});

我知道Firebase的FieldValue实际上有助于避免额外的.get((调用,我认为FieldValue.isEqual((可能会对我有所帮助,但它所做的是将该字段与另一个字段进行比较,而不是将其自身与false进行比较,这正是我真正需要的:

admin.firestore().collection('users').doc(uid).update({
field: admin.firestore.FieldValue.isEqual(false)
});

由于切换值意味着您需要知道字段的当前值,因此无法在单个操作中做到这一点。相反,您需要使用事务首先读取文档,然后以原子方式将修改后的字段值写回。

最新更新