如何在 Firebase 实时数据库 (v9) 中增加值

How to increment values in Firebase Realtime Database (v9)

我注意到 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)
    });
  }    

它在 V9 中仍然可用,您会发现它 here in the doc。所以下面应该可以解决问题。

import { ... , increment } from 'firebase/database';

// ...

const setWeekComplete = async () => {
    await set(ref(database, `users/${user}/streakCounter`), {
        weeks: increment(1)
    });
  }