feat: fix delete functionality

pull/376/head
Felix Angelov 3 years ago
parent 7ccdabe348
commit 74f60744b0

@ -1,32 +1,28 @@
const functions = require("firebase-functions");
const admin = require('firebase-admin');
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
exports.timedLeaderboardCleanup = functions.firestore
.document('leaderboard/{leaderboardEntry}')
.onCreate((snap, context) => {
functions.logger.info('Document created, getting all leaderboard documents')
var allLeaderBoardEntries = db.collection('leaderboard').orderBy('score','desc').get().then(function(snapshot) {
functions.logger.info('Leaderboard contains ' + snapshot.docs.length + ' entries');
if(snapshot.docs.length > 10) {
for(var i = 10; i < snapshot.docs.length; i++) {
functions.logger.info('Deleting entry number ' + (i + 1) + ' in the leaderboard');
snapshot.docs[i].ref.delete()
.then(function() {
functions.logger.info('Delete successful');
return true;
})
.catch(function(error) {
functions.logger.error('Error in Deleting record');
return false;
});
}
}
else {
functions.logger.info('Leaderboard is less then 10 entries. No action taken.');
return true;
}
});
});
.document("leaderboard/{leaderboardEntry}")
.onCreate(async (_, __) => {
functions.logger.info(
"Document created, getting all leaderboard documents"
);
const snapshot = await db
.collection("leaderboard")
.orderBy("score", "desc")
.offset(10)
.get();
functions.logger.info(
`Preparing to delete ${snapshot.docs.length} documents.`
);
try {
await Promise.all(snapshot.docs.map((doc) => doc.ref.delete()));
functions.logger.info("Success");
} catch (error) {
functions.logger.error(`Failed to delete documents ${error}`);
}
});

Loading…
Cancel
Save