added change displayname function

This commit is contained in:
Miodec 2021-01-29 20:32:40 +00:00
parent 6f758ad0d5
commit e0f64a4e2c
2 changed files with 41 additions and 0 deletions

View file

@ -130,6 +130,44 @@ exports.reserveDisplayName = functions.https.onCall(
}
);
exports.changeDisplayName = functions.https.onCall(
async (request, response) => {
try {
if (!isUsernameValid(request.name))
return { status: -1, message: "Name not valid" };
let taken = await db
.collection("takenNames")
.doc(request.name.toLowerCase())
.get();
taken = taken.data();
if (taken === undefined || taken.taken === false) {
//not taken
let oldname = admin.auth().getUser(request.uid);
oldname = (await oldname).displayName;
await admin
.auth()
.updateUser(request.uid, { displayName: request.name });
await db
.collection("users")
.doc(request.uid)
.update({ name: request.name });
await db.collection("takenNames").doc(request.name.toLowerCase()).set(
{
taken: true,
},
{ merge: true }
);
await db.collection("takenNames").doc(oldname.toLowerCase()).delete();
return { status: 1, message: "Updated" };
} else {
return { status: -2, message: "Name taken." };
}
} catch (e) {
return { status: -999, message: "Error: " + e.message };
}
}
);
exports.clearName = functions.auth.user().onDelete((user) => {
db.collection("takenNames").doc(user.displayName.toLowerCase()).delete();
db.collection("users").doc(user.uid).delete();

View file

@ -27,3 +27,6 @@ export const getLeaderboard = firebase
.functions()
.httpsCallable("getLeaderboard");
export const clearTagPb = firebase.functions().httpsCallable("clearTagPb");
export const changeDisplayName = firebase
.functions()
.httpsCallable("changeDisplayName");