Firebase-admin Node.js SDK fails when using admin.database.serverValue.increment

Viewed 174

I am using the node.js firebase-admin SDK (V9.4.2) and trying to use the admin.database.serverValue.increment function as follows:

var admin = require('firebase-admin');
var serviceAccount = require('/...');
var app = admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://...',
});
var numtables;
var lasttableadded = 0;
var db = admin.database();
var ref = db.ref();
var markerRef = db.ref().child('markers');
markerRef.once("value")
  .then(function(snapshot){
    numtables = snapshot.numChildren();
    var updates = {numTotalTables:numtables};
    db.ref().update(updates);
    //console.log("number of tables:", numtables);
    markerRef.on("child_added", function(snapshot) {
      lasttableadded = lasttableadded+1
      //console.log("Child Added");
      //console.log("number of tables:", numtables);
      //console.log("lasttable added = ",lasttableadded);
      if (lasttableadded > numtables){
        ref.child('numTotalTables').set(admin.database.ServerValue.increment(1));
        console.log("numTotalTables has been incremented");
      }
    });
    markerRef.on("child_removed", function(snapshot) {
      ref.child('numTotalTables').set(admin.database.ServerValue.increment(-1));
      console.log("numTotalTables has been decremented");
    });
  });

The initial update of "numTotalTables" works and the correct value is set in the database. However, when a child is added, I receive the following error:

TypeError: admin.database.ServerValue.increment is not a function
    at /home/ec2-user/PicNick_Counter_Test_DB/Counter_Test_DB.js:24:68
    at /home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:4595:22
    at exceptionGuard (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:695:9)
    at EventList.raise (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:9772:17)
    at EventQueue.raiseQueuedEventsMatchingPredicate_ (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:9726:41)
    at EventQueue.raiseEventsForChangedPath (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:9710:14)
    at Repo.onDataUpdate_ (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:12829:26)
    at PersistentConnection.onDataPush_ (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:12125:18)
    at PersistentConnection.onDataMessage_ (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:12119:18)
    at Connection.onDataMessage_ (/home/ec2-user/node_modules/firebase-admin/node_modules/@firebase/database/dist/index.node.cjs.js:11394:14)

I have tried with earlier node versions of firebase-admin but am getting same error.

0 Answers
Related