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.