The method DatabaseReference.transaction()returns a promise that is executed when the transaction is completed. You can use Promise.all()to wait for the completion of any number of these promises transactions, and then call process.exit()to complete the program.
Here is a complete example:
var admin = require("firebase-admin");
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<DATABASE_NAME>.firebaseio.com"
});
var addRef = admin.database().ref("add");
var addPromise = addRef.transaction(function(current) {
return (current || 0) + 1;
});
var subtractRef = admin.database().ref("subtract");
var subtractPromise = subtractRef.transaction(function(current) {
return (current || 0) - 1;
});
return Promise.all([addPromise, subtractPromise])
.then(function() {
console.log("Transaction promises completed! Exiting...");
process.exit(0);
})
.catch(function(error) {
console.log("Transactions failed:", error);
process.exit(1);
});
jwngr source
share