reserving display name, clearing name and data on delete

This commit is contained in:
Jack 2020-10-26 19:49:27 +00:00
parent 46b7995dca
commit 8f58c1cfee

View file

@ -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();
});