diff --git a/functions/index.js b/functions/index.js index ccab9d2c..dc838dc4 100644 --- a/functions/index.js +++ b/functions/index.js @@ -19,8 +19,9 @@ const deleteUserFunctionHandler = async (_, { auth }) => { } try { - // 1. Delete user resumes const userId = auth.uid; + const updates = {}; + const userResumesDataSnapshot = await admin .database() .ref('resumes') @@ -30,18 +31,21 @@ const deleteUserFunctionHandler = async (_, { auth }) => { const userResumes = userResumesDataSnapshot.val(); if (userResumes) { Object.keys(userResumes).forEach(async (resumeId) => { - await admin.database().ref(`resumes/${resumeId}`).remove(); + updates[`resumes/${resumeId}`] = null; }); } - // 2. Delete user const userDataSnapshot = await admin .database() .ref(`users/${userId}`) .once('value'); const user = userDataSnapshot.val(); if (user) { - await admin.database().ref(`users/${userId}`).remove(); + updates[`users/${userId}`] = null; + } + + if (Object.keys(updates).length > 0) { + await admin.database().ref().update(updates); } return true; diff --git a/src/components/builder/right/sections/Settings.js b/src/components/builder/right/sections/Settings.js index cd442bad..a6b9ec9f 100644 --- a/src/components/builder/right/sections/Settings.js +++ b/src/components/builder/right/sections/Settings.js @@ -35,7 +35,7 @@ const Settings = ({ id }) => { dispatch({ type: 'change_language', payload: lang }); }; - const handleDeleteAccount = () => { + const handleDeleteAccount = async () => { if (deleteText === t('builder.settings.dangerZone.button')) { setDeleteText(t('shared.buttons.confirmation')); return; @@ -43,18 +43,12 @@ const Settings = ({ id }) => { setDeleteText(t('shared.buttons.loading')); - setTimeout( - () => - deleteAccount() - .then(() => { - setDeleteText('Buh bye! :('); - }) - .catch((error) => { - toast.error(error.message); - setDeleteText(t('builder.settings.dangerZone.button')); - }), - 500, - ); + try { + await deleteAccount(); + } catch (error) { + toast.error('An error occurred deleting your account'); + setDeleteText(t('builder.settings.dangerZone.button')); + } }; return (