Skip to content

Commit ea1d79a

Browse files
authored
fix(api): handle undefined auth users
1 parent 9f37934 commit ea1d79a

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

src/v3/classes/User.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,11 @@ export class User {
7474

7575
if (this.profile.role !== 'pocket') {
7676
const data = await getUserAuthDetails(this.profile.auth_uid!);
77-
this.email = data.email;
78-
this.auth_provider = data.auth_provider;
77+
78+
if (data) {
79+
this.email = data.email;
80+
this.auth_provider = data.auth_provider;
81+
}
7982

8083
if (!this.profile.createdAt) {
8184
this.profile.createdAt = data.createdAt;

src/v3/services/firebase/users.ts

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
import { getAuth } from 'firebase-admin/auth';
22
import { getStorage } from 'firebase-admin/storage';
3+
import { LogLevel } from '@logtail/types';
34
import { StandardRecord } from '../../definition/app.js';
45
import { PocketNewParams, UserNewParams, UserProfile, UserSession, UserSettings } from '../../definition/user.js';
56
import { getFileFromStorage, getFileMetadata, uploadFileToStorage } from './storage_utils.js';
67
import { User } from '../../classes/User.js';
78
import { encryptData } from '../encryption/encryption.js';
89
import { schemaUserProfile } from '../../definition/schema.js';
10+
import { logger } from '../logger/logger.js';
911

1012
export const getUserAuthDetails = async (auth_uid: string) => {
11-
const userRecord = await getAuth().getUser(auth_uid);
13+
try {
14+
const userRecord = await getAuth().getUser(auth_uid);
15+
16+
const auth_provider = userRecord.providerData[0]?.providerId || 'email';
1217

13-
const auth_provider = userRecord.providerData[0]?.providerId || 'email';
18+
return { email: userRecord.email, auth_provider, createdAt: userRecord.metadata.creationTime };
19+
} catch (error) {
20+
logger(LogLevel.Warn, String(error?.message));
1421

15-
return { email: userRecord.email, auth_provider, createdAt: userRecord.metadata.creationTime };
22+
return;
23+
}
1624
};
1725

1826
export const getUsersID = async () => {
@@ -290,7 +298,11 @@ export const decodeUserIdToken = async (token: string) => {
290298
};
291299

292300
export const deleteAuthUser = async (uid: string) => {
293-
await getAuth().deleteUser(uid);
301+
try {
302+
await getAuth().deleteUser(uid);
303+
} catch (error) {
304+
console.error('Failed to delete auth user', err);
305+
}
294306
};
295307

296308
export const setUserFlags = async (id: string, flags: string[]) => {

0 commit comments

Comments
 (0)