mirror of https://github.com/flutter/pinball.git
parent
b83d5b0393
commit
7ccdabe348
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"projects": {
|
||||||
|
"default": "pinball-dev"
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
node_modules/
|
@ -0,0 +1,32 @@
|
|||||||
|
const functions = require("firebase-functions");
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"name": "functions",
|
||||||
|
"description": "Cloud Functions for Firebase",
|
||||||
|
"scripts": {
|
||||||
|
"serve": "firebase emulators:start --only functions",
|
||||||
|
"shell": "firebase functions:shell",
|
||||||
|
"start": "npm run shell",
|
||||||
|
"deploy": "firebase deploy --only functions",
|
||||||
|
"logs": "firebase functions:log"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "16"
|
||||||
|
},
|
||||||
|
"main": "index.js",
|
||||||
|
"dependencies": {
|
||||||
|
"firebase-admin": "^10.0.2",
|
||||||
|
"firebase-functions": "^3.18.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"firebase-functions-test": "^0.2.0"
|
||||||
|
},
|
||||||
|
"private": true
|
||||||
|
}
|
Loading…
Reference in new issue