Skip to content

Commit

Permalink
Added updateLikesCount
Browse files Browse the repository at this point in the history
  • Loading branch information
samarthagarwal committed Jun 7, 2018
1 parent bd69cee commit d83ed1a
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 3 deletions.
5 changes: 5 additions & 0 deletions .firebaserc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"projects": {
"default": "feedlyapp-9df9a"
}
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ npm-debug.log*
coverage/
dist/
node_modules/
functions/node_modules
tmp/
temp/
hooks/
Expand Down
8 changes: 8 additions & 0 deletions firebase.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
40 changes: 37 additions & 3 deletions functions/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,42 @@
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

admin.initializeApp(functions.config().firebase);

// Start writing Firebase Functions
// https://firebase.google.com/docs/functions/typescript

export const helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
export const updateLikesCount = functions.https.onRequest((request, response) => {

console.log(request.body);

const postId = request.body.postId;
const userId = request.body.userId;
const action = request.body.action; // 'like' or 'unlike'

admin.firestore().collection("posts").doc(postId).get().then((data) => {

let likesCount = data.data().likesCount || 0;
let likes = data.data().likes || [];

let updateData = {};

if(action == "like"){
updateData["likesCount"] = ++likesCount;
updateData[`likes.${userId}`] = true;
} else {
updateData["likesCount"] = --likesCount;
updateData[`likes.${userId}`] = false;
}

admin.firestore().collection("posts").doc(postId).update(updateData).then(() => {
response.status(200).send("Done")
}).catch((err) => {
response.status(err.code).send(err.message);
})

}).catch((err) => {
response.status(err.code).send(err.message);
})

})

0 comments on commit d83ed1a

Please sign in to comment.