我注意到有关在Javascript v8中如何增加实时数据库值的说明:
===
添加了 ServerValue.increment() 以支持原子字段值增量而不需要事务。
API文档请参见此处
用法示例:
firebase.database()
.ref('node')
.child('clicks')
.set(firebase.database.ServerValue.increment(1))
或者你可以进行递减操作,只需将函数参数设置为 -1:
firebase.database()
.ref('node')
.child('clicks')
.set(firebase.database.ServerValue.increment(-1))
然而,我注意到在v9文档中没有提到ServerValue。
这是否意味着这个功能不可用?
我已经尝试自己将其转换为v9,但是一直未能成功:
const setWeekComplete = () => {
set(ref(database, `users/${user}/streakCounter`), {
weeks: database.ServerValue.increment(1)
});
}
set()
是异步方法,因此通常使用async/await来了解何时已执行它(并获取结果,如果它返回一个结果的话,这在set()
的情况下并不适用)。但如果您不关心结果,则可以在不等待的情况下调用它。 - Renaud Tarnec