mirror of https://github.com/flutter/pinball.git
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…
Reference in new issue