Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to increment values in Firebase Realtime Database (v9)

I note that there's instructions on how to increment values for realtime database in Javascript v8:

===

Added ServerValue.increment() to support atomic field value increments without transactions.

API Docs here

Usage example:

firebase.database()
    .ref('node')
    .child('clicks')
    .set(firebase.database.ServerValue.increment(1))

Or you can decrement, just put -1 as function arg like so:

firebase.database()
    .ref('node')
    .child('clicks')
    .set(firebase.database.ServerValue.increment(-1))

However, I notice that there isn't any reference to ServerValue in the v9 documentation.

Does this mean that this functionality is not available?

I've tried converting it to v9 on my own but I've been unsuccessful so far:

const setWeekComplete = () => {
    set(ref(database, `users/${user}/streakCounter`), {
        weeks: database.ServerValue.increment(1)
    });
  }    
like image 725
Lloyd Rajoo Avatar asked Sep 13 '25 02:09

Lloyd Rajoo


1 Answers

It is still available in V9 and you'll find it here in the doc. So the following should do the trick.

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

// ...

const setWeekComplete = async () => {
    await set(ref(database, `users/${user}/streakCounter`), {
        weeks: increment(1)
    });
  } 
like image 128
Renaud Tarnec Avatar answered Sep 14 '25 16:09

Renaud Tarnec