Вы возвращаете пустую строку до того, как ваш запрос Firebase сможет вернуть результат из документа.
Если вам нужно подождать, используйте обещание с async / await для возврата значения.
Должно быть что-то вроде:
async getFirstNameByUid(uid: string): string {
const userDocument = firebaseWebApi.firestore().collection("users").doc(uid);
const doc = await userDocument.get();
if (doc.exists) {
return doc.data().firstname;
} else {
console.log("No such document!");
}
return "";
}