From 8f58c1cfee0fe3f086aabfe93239341036e936b4 Mon Sep 17 00:00:00 2001 From: Jack Date: Mon, 26 Oct 2020 19:49:27 +0000 Subject: [PATCH] reserving display name, clearing name and data on delete --- functions/index.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/functions/index.js b/functions/index.js index 0d70d1e74..8318194c8 100644 --- a/functions/index.js +++ b/functions/index.js @@ -105,16 +105,23 @@ function isUsernameValid(name) { return /^[0-9a-zA-Z_.-]+$/.test(name); } -exports.reserveName = functions.auth.user().onCreate((user) => { - db.collection('takenNames') - .doc(user.uid) +exports.reserveDisplayName = functions.https.onCall(async (request, response) => { + let udata = await db.collection('users').doc(request.uid).get(); + udata = udata.data(); + if (request.name.toLowerCase() === udata.name.toLowerCase()) { + db.collection('takenNames') + .doc(request.name.toLowerCase()) .set({ taken: true }, { merge: true }); -}); + } +}) exports.clearName = functions.auth.user().onDelete((user) => { db.collection('takenNames') + .doc(user.displayName.toLowerCase()) + .delete(); + db.collection('users') .doc(user.uid) .delete(); });