diff --git a/firebase.json b/firebase.json index 9a97dcad..74ab27a5 100644 --- a/firebase.json +++ b/firebase.json @@ -9,6 +9,7 @@ "predeploy": ["node firebase/rules.js"] }, "functions": { - "predeploy": ["npm --prefix \"$RESOURCE_DIR\" run build"] + "predeploy": ["npm --prefix \"$RESOURCE_DIR\" run build"], + "runtime": "nodejs10" } } diff --git a/functions/package.json b/functions/package.json index f930e130..eec5536b 100644 --- a/functions/package.json +++ b/functions/package.json @@ -8,9 +8,6 @@ "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, - "engines": { - "node": "12" - }, "main": "lib/index.js", "dependencies": { "firebase-admin": "9.4.1", diff --git a/functions/src/index.ts b/functions/src/index.ts index 3d7f9f2b..f0133ea2 100644 --- a/functions/src/index.ts +++ b/functions/src/index.ts @@ -144,6 +144,8 @@ exports.usersHooks = functions.firestore.document('users/{userId}').onWrite(asyn // proposals exports.proposalsHooks = functions.firestore.document('proposals/{proposalId}').onWrite(async (snap, context) => { if ((!snap.before.data() && snap.after.data()) || (snap.before.data() && snap.after.data())) { + if (snap.after.data()?.studentId === '') return; + await db.runTransaction(async (transaction) => { transaction.set(db.collection('notifications').doc(), { userId: snap.after.data()?.teacherId, diff --git a/server/api/project/submit.ts b/server/api/project/submit.ts index 4d0c05c9..f4b4fc23 100644 --- a/server/api/project/submit.ts +++ b/server/api/project/submit.ts @@ -62,7 +62,7 @@ export default async (req: Request, res: Response) => { const system = await transaction.get(systemRef.doc('schoolYear')); - if ((projectData?.currentYear as admin.firestore.Timestamp).isEqual(system.data()?.projectDeadline)) throw new Error('409/2'); + if (!(projectData?.currentYear as admin.firestore.Timestamp).isEqual(system.data()?.currentYear)) throw new Error('409/2'); if (sfDoc.data()?.deadlineDate != null) { if (admin.firestore.Timestamp.now() > sfDoc.data()?.deadlineDate) throw new Error('423');