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

Loading…
Cancel
Save