@seaverse/data-service-sdk 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -32,9 +32,9 @@ const ENDPOINTS = {
32
32
  * ---------------------------
33
33
  * Your Firestore data is organized in three permission levels:
34
34
  *
35
- * 1. publicRead/ - System configs, announcements (Read: Everyone, Write: Admin only)
36
- * 2. publicData/ - User posts, shared content (Read: Everyone, Write: Everyone)
37
- * 3. userData/{userId}/ - Private user data (Read/Write: Owner only)
35
+ * 1. publicRead/_data/ - System configs, announcements (Read: Everyone, Write: Admin only)
36
+ * 2. publicData/_data/ - User posts, shared content (Read: Everyone, Write: Everyone)
37
+ * 3. userData/{userId}/_data/ - Private user data (Read/Write: Owner only)
38
38
  *
39
39
  * QUICK START FOR LLM:
40
40
  * -------------------
@@ -86,7 +86,7 @@ const ENDPOINTS = {
86
86
  * const snapshot = await getDocs(collection(db, `appData/${appId}/publicData/posts`));
87
87
  *
88
88
  * // Write to userData (only owner can write)
89
- * await addDoc(collection(db, `appData/${appId}/userData/${userId}/notes`), {
89
+ * await addDoc(collection(db, `appData/${appId}/userData/${userId}/_data/notes`), {
90
90
  * _appId: appId, // REQUIRED
91
91
  * _createdAt: serverTimestamp(), // REQUIRED
92
92
  * _createdBy: userId, // REQUIRED
@@ -339,7 +339,7 @@ function getPublicDataPath(appId, collectionName) {
339
339
  * ```typescript
340
340
  * // Write private user notes
341
341
  * const path = getUserDataPath('my-app', 'user-123', 'notes');
342
- * // Returns: 'appData/my-app/userData/user-123/notes'
342
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes'
343
343
  *
344
344
  * await addDoc(collection(db, path), {
345
345
  * _appId: appId,
@@ -353,7 +353,7 @@ function getUserDataPath(appId, userId, collectionName) {
353
353
  validateSegment('appId', appId);
354
354
  validateSegment('userId', userId);
355
355
  validateSegment('collectionName', collectionName);
356
- return `appData/${appId}/userData/${userId}/${collectionName}`;
356
+ return `appData/${appId}/userData/${userId}/_data/${collectionName}`;
357
357
  }
358
358
  /**
359
359
  * Generate path for a specific document in publicRead
@@ -411,7 +411,7 @@ function getPublicDataDocPath(appId, collectionName, docId) {
411
411
  * @example
412
412
  * ```typescript
413
413
  * const path = getUserDataDocPath('my-app', 'user-123', 'notes', 'note-456');
414
- * // Returns: 'appData/my-app/userData/user-123/notes/note-456'
414
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes/note-456'
415
415
  *
416
416
  * const docSnap = await getDoc(doc(db, path));
417
417
  * ```
@@ -421,7 +421,7 @@ function getUserDataDocPath(appId, userId, collectionName, docId) {
421
421
  validateSegment('userId', userId);
422
422
  validateSegment('collectionName', collectionName);
423
423
  validateSegment('docId', docId);
424
- return `appData/${appId}/userData/${userId}/${collectionName}/${docId}`;
424
+ return `appData/${appId}/userData/${userId}/_data/${collectionName}/${docId}`;
425
425
  }
426
426
  /**
427
427
  * Validate a path segment to ensure it doesn't contain invalid characters
@@ -486,7 +486,7 @@ class PathBuilder {
486
486
  userData(userId, collectionName) {
487
487
  validateSegment('userId', userId);
488
488
  validateSegment('collectionName', collectionName);
489
- this.segments.push('userData', userId, collectionName);
489
+ this.segments.push('userData', userId, '_data', collectionName);
490
490
  return this;
491
491
  }
492
492
  /**
@@ -1105,7 +1105,9 @@ class FirestoreHelper {
1105
1105
  }
1106
1106
  else {
1107
1107
  // Filter out soft-deleted documents
1108
- const q = query(colRef, where('_deleted', '==', false));
1108
+ // Use '!=' to include documents without _deleted field (new documents)
1109
+ // This will return documents where _deleted is missing, null, undefined, or false
1110
+ const q = query(colRef, where('_deleted', '!=', true));
1109
1111
  return getDocs(q);
1110
1112
  }
1111
1113
  }
@@ -1238,7 +1240,7 @@ function getFirebaseConfig(tokenResponse) {
1238
1240
  *
1239
1241
  * This is a convenience function that automatically:
1240
1242
  * 1. Creates Firebase config from token response
1241
- * 2. Initializes Firebase app
1243
+ * 2. Initializes Firebase app (or reuses existing one)
1242
1244
  * 3. Signs in with the custom token
1243
1245
  * 4. Creates FirestoreHelper for LLM-friendly operations
1244
1246
  * 5. Returns authenticated Firebase instances
@@ -1246,11 +1248,20 @@ function getFirebaseConfig(tokenResponse) {
1246
1248
  * IMPORTANT: This function requires Firebase SDK to be installed separately:
1247
1249
  * npm install firebase
1248
1250
  *
1251
+ * ⚠️ IMPORTANT: This function can be called multiple times safely. It will:
1252
+ * - Reuse existing Firebase app if already initialized
1253
+ * - Re-authenticate with new token if needed
1254
+ * - Handle token refresh scenarios
1255
+ *
1249
1256
  * 🎯 LLM RECOMMENDED: Use the `helper` object for simplified operations
1250
1257
  *
1251
1258
  * @param tokenResponse - The Firestore token response from SDK
1252
1259
  * @returns Object containing initialized Firebase instances and LLM-friendly helper
1253
1260
  *
1261
+ * @throws {Error} If app_id is missing from token response
1262
+ * @throws {Error} If Firebase SDK is not installed
1263
+ * @throws {Error} If authentication fails
1264
+ *
1254
1265
  * @example
1255
1266
  * ```typescript
1256
1267
  * import { initializeWithToken } from '@seaverse/data-service-sdk';
@@ -1269,17 +1280,25 @@ function getFirebaseConfig(tokenResponse) {
1269
1280
  * ```
1270
1281
  */
1271
1282
  async function initializeWithToken(tokenResponse) {
1283
+ // ✅ FIX #3: Validate appId FIRST before any initialization
1284
+ const appId = tokenResponse.app_id;
1285
+ if (!appId) {
1286
+ throw new Error('app_id is required in token response. ' +
1287
+ 'Make sure your token response includes a valid app_id field.');
1288
+ }
1272
1289
  // Check if Firebase SDK is available
1273
1290
  let initializeApp;
1274
1291
  let getAuth;
1275
1292
  let signInWithCustomToken;
1276
1293
  let getFirestore;
1294
+ let getApps;
1277
1295
  try {
1278
1296
  // Try to import Firebase modules
1279
1297
  const firebaseApp = await import('firebase/app');
1280
1298
  const firebaseAuth = await import('firebase/auth');
1281
1299
  const firebaseFirestore = await import('firebase/firestore');
1282
1300
  initializeApp = firebaseApp.initializeApp;
1301
+ getApps = firebaseApp.getApps;
1283
1302
  getAuth = firebaseAuth.getAuth;
1284
1303
  signInWithCustomToken = firebaseAuth.signInWithCustomToken;
1285
1304
  getFirestore = firebaseFirestore.getFirestore;
@@ -1288,17 +1307,57 @@ async function initializeWithToken(tokenResponse) {
1288
1307
  throw new Error('Firebase SDK not found. Please install it: npm install firebase\n' +
1289
1308
  'Or import manually and use getFirebaseConfig() helper instead.');
1290
1309
  }
1291
- // Initialize Firebase
1292
- const config = getFirebaseConfig(tokenResponse);
1293
- const app = initializeApp(config);
1294
- // Sign in with custom token
1295
- const auth = getAuth(app);
1296
- await signInWithCustomToken(auth, tokenResponse.custom_token);
1297
- // Get Firestore instance with correct database ID
1298
- // IMPORTANT: Must specify database_id, not just use default!
1299
- const db = getFirestore(app, tokenResponse.database_id);
1310
+ // FIX #1: Check if Firebase app already exists
1311
+ const existingApps = getApps();
1312
+ const existingApp = existingApps.find((app) => app.name === '[DEFAULT]');
1313
+ let app;
1314
+ let auth;
1315
+ let db;
1316
+ if (existingApp) {
1317
+ // ✅ FIX #2: Reuse existing app instead of creating new one
1318
+ console.log('[SeaVerse SDK] Reusing existing Firebase app');
1319
+ app = existingApp;
1320
+ auth = getAuth(app);
1321
+ db = getFirestore(app, tokenResponse.database_id);
1322
+ // ✅ FIX #4: Re-authenticate with new token (for token refresh scenarios)
1323
+ try {
1324
+ await signInWithCustomToken(auth, tokenResponse.custom_token);
1325
+ console.log('[SeaVerse SDK] Re-authenticated with new token');
1326
+ }
1327
+ catch (error) {
1328
+ // If already signed in with same token, ignore error
1329
+ // Only throw if it's a real authentication failure
1330
+ if (error?.code !== 'auth/invalid-credential' && error?.code !== 'auth/network-request-failed') {
1331
+ console.warn('[SeaVerse SDK] Re-authentication warning:', error?.message || error);
1332
+ }
1333
+ }
1334
+ }
1335
+ else {
1336
+ // ✅ FIX #4: First-time initialization with proper error handling
1337
+ console.log('[SeaVerse SDK] Initializing new Firebase app');
1338
+ try {
1339
+ const config = getFirebaseConfig(tokenResponse);
1340
+ app = initializeApp(config);
1341
+ auth = getAuth(app);
1342
+ await signInWithCustomToken(auth, tokenResponse.custom_token);
1343
+ // IMPORTANT: Must specify database_id, not just use default!
1344
+ db = getFirestore(app, tokenResponse.database_id);
1345
+ }
1346
+ catch (error) {
1347
+ // ✅ FIX #4: Cleanup on failure to prevent half-initialized state
1348
+ if (app) {
1349
+ try {
1350
+ await app.delete();
1351
+ console.log('[SeaVerse SDK] Cleaned up failed Firebase app initialization');
1352
+ }
1353
+ catch (cleanupError) {
1354
+ console.warn('[SeaVerse SDK] Failed to cleanup app:', cleanupError);
1355
+ }
1356
+ }
1357
+ throw new Error(`Failed to initialize Firebase: ${error instanceof Error ? error.message : String(error)}`);
1358
+ }
1359
+ }
1300
1360
  const userId = tokenResponse.user_id;
1301
- const appId = tokenResponse.app_id || '';
1302
1361
  // Create LLM-friendly helper
1303
1362
  const helper = new FirestoreHelper(db, appId, userId);
1304
1363
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/config.ts","../src/client.ts","../src/path-helpers.ts","../src/validation.ts","../src/firestore-helper.ts","../src/helpers.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/config.ts","../src/client.ts","../src/path-helpers.ts","../src/validation.ts","../src/firestore-helper.ts","../src/helpers.ts"],"sourcesContent":[null,null,null,null,null,null],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,14 +16,14 @@ export { CollectionReference, DocumentData, DocumentReference, DocumentSnapshot,
16
16
  * 2. publicData/ - Read-write public data (e.g., user-generated content)
17
17
  * Read: All authenticated users | Write: All authenticated users
18
18
  *
19
- * 3. userData/{userId}/ - Private user data (e.g., personal settings, private notes)
19
+ * 3. userData/{userId}/_data/ - Private user data (e.g., personal settings, private notes)
20
20
  * Read: Owner only | Write: Owner only
21
21
  *
22
22
  * DATA PATH STRUCTURE:
23
23
  * -------------------
24
- * appData/{app_id}/publicRead/{collection}/{docId}
25
- * appData/{app_id}/publicData/{collection}/{docId}
26
- * appData/{app_id}/userData/{userId}/{collection}/{docId}
24
+ * appData/{app_id}/publicRead/_data/{collection}/{docId}
25
+ * appData/{app_id}/publicData/_data/{collection}/{docId}
26
+ * appData/{app_id}/userData/{userId}/_data/{collection}/{docId}
27
27
  *
28
28
  * 🚨 CRITICAL FIRESTORE PATH RULES (FOR LLM):
29
29
  * ------------------------------------------
@@ -260,9 +260,9 @@ interface DataServiceClientOptions {
260
260
  * ---------------------------
261
261
  * Your Firestore data is organized in three permission levels:
262
262
  *
263
- * 1. publicRead/ - System configs, announcements (Read: Everyone, Write: Admin only)
264
- * 2. publicData/ - User posts, shared content (Read: Everyone, Write: Everyone)
265
- * 3. userData/{userId}/ - Private user data (Read/Write: Owner only)
263
+ * 1. publicRead/_data/ - System configs, announcements (Read: Everyone, Write: Admin only)
264
+ * 2. publicData/_data/ - User posts, shared content (Read: Everyone, Write: Everyone)
265
+ * 3. userData/{userId}/_data/ - Private user data (Read/Write: Owner only)
266
266
  *
267
267
  * QUICK START FOR LLM:
268
268
  * -------------------
@@ -314,7 +314,7 @@ interface DataServiceClientOptions {
314
314
  * const snapshot = await getDocs(collection(db, `appData/${appId}/publicData/posts`));
315
315
  *
316
316
  * // Write to userData (only owner can write)
317
- * await addDoc(collection(db, `appData/${appId}/userData/${userId}/notes`), {
317
+ * await addDoc(collection(db, `appData/${appId}/userData/${userId}/_data/notes`), {
318
318
  * _appId: appId, // REQUIRED
319
319
  * _createdAt: serverTimestamp(), // REQUIRED
320
320
  * _createdBy: userId, // REQUIRED
@@ -809,7 +809,7 @@ declare function getFirebaseConfig(tokenResponse: FirestoreTokenResponse): Fireb
809
809
  *
810
810
  * This is a convenience function that automatically:
811
811
  * 1. Creates Firebase config from token response
812
- * 2. Initializes Firebase app
812
+ * 2. Initializes Firebase app (or reuses existing one)
813
813
  * 3. Signs in with the custom token
814
814
  * 4. Creates FirestoreHelper for LLM-friendly operations
815
815
  * 5. Returns authenticated Firebase instances
@@ -817,11 +817,20 @@ declare function getFirebaseConfig(tokenResponse: FirestoreTokenResponse): Fireb
817
817
  * IMPORTANT: This function requires Firebase SDK to be installed separately:
818
818
  * npm install firebase
819
819
  *
820
+ * ⚠️ IMPORTANT: This function can be called multiple times safely. It will:
821
+ * - Reuse existing Firebase app if already initialized
822
+ * - Re-authenticate with new token if needed
823
+ * - Handle token refresh scenarios
824
+ *
820
825
  * 🎯 LLM RECOMMENDED: Use the `helper` object for simplified operations
821
826
  *
822
827
  * @param tokenResponse - The Firestore token response from SDK
823
828
  * @returns Object containing initialized Firebase instances and LLM-friendly helper
824
829
  *
830
+ * @throws {Error} If app_id is missing from token response
831
+ * @throws {Error} If Firebase SDK is not installed
832
+ * @throws {Error} If authentication fails
833
+ *
825
834
  * @example
826
835
  * ```typescript
827
836
  * import { initializeWithToken } from '@seaverse/data-service-sdk';
@@ -913,7 +922,7 @@ declare function getPublicDataPath(appId: string, collectionName: string): strin
913
922
  * ```typescript
914
923
  * // Write private user notes
915
924
  * const path = getUserDataPath('my-app', 'user-123', 'notes');
916
- * // Returns: 'appData/my-app/userData/user-123/notes'
925
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes'
917
926
  *
918
927
  * await addDoc(collection(db, path), {
919
928
  * _appId: appId,
@@ -970,7 +979,7 @@ declare function getPublicDataDocPath(appId: string, collectionName: string, doc
970
979
  * @example
971
980
  * ```typescript
972
981
  * const path = getUserDataDocPath('my-app', 'user-123', 'notes', 'note-456');
973
- * // Returns: 'appData/my-app/userData/user-123/notes/note-456'
982
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes/note-456'
974
983
  *
975
984
  * const docSnap = await getDoc(doc(db, path));
976
985
  * ```
package/dist/index.js CHANGED
@@ -30,9 +30,9 @@ const ENDPOINTS = {
30
30
  * ---------------------------
31
31
  * Your Firestore data is organized in three permission levels:
32
32
  *
33
- * 1. publicRead/ - System configs, announcements (Read: Everyone, Write: Admin only)
34
- * 2. publicData/ - User posts, shared content (Read: Everyone, Write: Everyone)
35
- * 3. userData/{userId}/ - Private user data (Read/Write: Owner only)
33
+ * 1. publicRead/_data/ - System configs, announcements (Read: Everyone, Write: Admin only)
34
+ * 2. publicData/_data/ - User posts, shared content (Read: Everyone, Write: Everyone)
35
+ * 3. userData/{userId}/_data/ - Private user data (Read/Write: Owner only)
36
36
  *
37
37
  * QUICK START FOR LLM:
38
38
  * -------------------
@@ -84,7 +84,7 @@ const ENDPOINTS = {
84
84
  * const snapshot = await getDocs(collection(db, `appData/${appId}/publicData/posts`));
85
85
  *
86
86
  * // Write to userData (only owner can write)
87
- * await addDoc(collection(db, `appData/${appId}/userData/${userId}/notes`), {
87
+ * await addDoc(collection(db, `appData/${appId}/userData/${userId}/_data/notes`), {
88
88
  * _appId: appId, // REQUIRED
89
89
  * _createdAt: serverTimestamp(), // REQUIRED
90
90
  * _createdBy: userId, // REQUIRED
@@ -337,7 +337,7 @@ function getPublicDataPath(appId, collectionName) {
337
337
  * ```typescript
338
338
  * // Write private user notes
339
339
  * const path = getUserDataPath('my-app', 'user-123', 'notes');
340
- * // Returns: 'appData/my-app/userData/user-123/notes'
340
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes'
341
341
  *
342
342
  * await addDoc(collection(db, path), {
343
343
  * _appId: appId,
@@ -351,7 +351,7 @@ function getUserDataPath(appId, userId, collectionName) {
351
351
  validateSegment('appId', appId);
352
352
  validateSegment('userId', userId);
353
353
  validateSegment('collectionName', collectionName);
354
- return `appData/${appId}/userData/${userId}/${collectionName}`;
354
+ return `appData/${appId}/userData/${userId}/_data/${collectionName}`;
355
355
  }
356
356
  /**
357
357
  * Generate path for a specific document in publicRead
@@ -409,7 +409,7 @@ function getPublicDataDocPath(appId, collectionName, docId) {
409
409
  * @example
410
410
  * ```typescript
411
411
  * const path = getUserDataDocPath('my-app', 'user-123', 'notes', 'note-456');
412
- * // Returns: 'appData/my-app/userData/user-123/notes/note-456'
412
+ * // Returns: 'appData/my-app/userData/user-123/_data/notes/note-456'
413
413
  *
414
414
  * const docSnap = await getDoc(doc(db, path));
415
415
  * ```
@@ -419,7 +419,7 @@ function getUserDataDocPath(appId, userId, collectionName, docId) {
419
419
  validateSegment('userId', userId);
420
420
  validateSegment('collectionName', collectionName);
421
421
  validateSegment('docId', docId);
422
- return `appData/${appId}/userData/${userId}/${collectionName}/${docId}`;
422
+ return `appData/${appId}/userData/${userId}/_data/${collectionName}/${docId}`;
423
423
  }
424
424
  /**
425
425
  * Validate a path segment to ensure it doesn't contain invalid characters
@@ -484,7 +484,7 @@ class PathBuilder {
484
484
  userData(userId, collectionName) {
485
485
  validateSegment('userId', userId);
486
486
  validateSegment('collectionName', collectionName);
487
- this.segments.push('userData', userId, collectionName);
487
+ this.segments.push('userData', userId, '_data', collectionName);
488
488
  return this;
489
489
  }
490
490
  /**
@@ -1103,7 +1103,9 @@ class FirestoreHelper {
1103
1103
  }
1104
1104
  else {
1105
1105
  // Filter out soft-deleted documents
1106
- const q = query(colRef, where('_deleted', '==', false));
1106
+ // Use '!=' to include documents without _deleted field (new documents)
1107
+ // This will return documents where _deleted is missing, null, undefined, or false
1108
+ const q = query(colRef, where('_deleted', '!=', true));
1107
1109
  return getDocs(q);
1108
1110
  }
1109
1111
  }
@@ -1236,7 +1238,7 @@ function getFirebaseConfig(tokenResponse) {
1236
1238
  *
1237
1239
  * This is a convenience function that automatically:
1238
1240
  * 1. Creates Firebase config from token response
1239
- * 2. Initializes Firebase app
1241
+ * 2. Initializes Firebase app (or reuses existing one)
1240
1242
  * 3. Signs in with the custom token
1241
1243
  * 4. Creates FirestoreHelper for LLM-friendly operations
1242
1244
  * 5. Returns authenticated Firebase instances
@@ -1244,11 +1246,20 @@ function getFirebaseConfig(tokenResponse) {
1244
1246
  * IMPORTANT: This function requires Firebase SDK to be installed separately:
1245
1247
  * npm install firebase
1246
1248
  *
1249
+ * ⚠️ IMPORTANT: This function can be called multiple times safely. It will:
1250
+ * - Reuse existing Firebase app if already initialized
1251
+ * - Re-authenticate with new token if needed
1252
+ * - Handle token refresh scenarios
1253
+ *
1247
1254
  * 🎯 LLM RECOMMENDED: Use the `helper` object for simplified operations
1248
1255
  *
1249
1256
  * @param tokenResponse - The Firestore token response from SDK
1250
1257
  * @returns Object containing initialized Firebase instances and LLM-friendly helper
1251
1258
  *
1259
+ * @throws {Error} If app_id is missing from token response
1260
+ * @throws {Error} If Firebase SDK is not installed
1261
+ * @throws {Error} If authentication fails
1262
+ *
1252
1263
  * @example
1253
1264
  * ```typescript
1254
1265
  * import { initializeWithToken } from '@seaverse/data-service-sdk';
@@ -1267,17 +1278,25 @@ function getFirebaseConfig(tokenResponse) {
1267
1278
  * ```
1268
1279
  */
1269
1280
  async function initializeWithToken(tokenResponse) {
1281
+ // ✅ FIX #3: Validate appId FIRST before any initialization
1282
+ const appId = tokenResponse.app_id;
1283
+ if (!appId) {
1284
+ throw new Error('app_id is required in token response. ' +
1285
+ 'Make sure your token response includes a valid app_id field.');
1286
+ }
1270
1287
  // Check if Firebase SDK is available
1271
1288
  let initializeApp;
1272
1289
  let getAuth;
1273
1290
  let signInWithCustomToken;
1274
1291
  let getFirestore;
1292
+ let getApps;
1275
1293
  try {
1276
1294
  // Try to import Firebase modules
1277
1295
  const firebaseApp = await import('firebase/app');
1278
1296
  const firebaseAuth = await import('firebase/auth');
1279
1297
  const firebaseFirestore = await import('firebase/firestore');
1280
1298
  initializeApp = firebaseApp.initializeApp;
1299
+ getApps = firebaseApp.getApps;
1281
1300
  getAuth = firebaseAuth.getAuth;
1282
1301
  signInWithCustomToken = firebaseAuth.signInWithCustomToken;
1283
1302
  getFirestore = firebaseFirestore.getFirestore;
@@ -1286,17 +1305,57 @@ async function initializeWithToken(tokenResponse) {
1286
1305
  throw new Error('Firebase SDK not found. Please install it: npm install firebase\n' +
1287
1306
  'Or import manually and use getFirebaseConfig() helper instead.');
1288
1307
  }
1289
- // Initialize Firebase
1290
- const config = getFirebaseConfig(tokenResponse);
1291
- const app = initializeApp(config);
1292
- // Sign in with custom token
1293
- const auth = getAuth(app);
1294
- await signInWithCustomToken(auth, tokenResponse.custom_token);
1295
- // Get Firestore instance with correct database ID
1296
- // IMPORTANT: Must specify database_id, not just use default!
1297
- const db = getFirestore(app, tokenResponse.database_id);
1308
+ // FIX #1: Check if Firebase app already exists
1309
+ const existingApps = getApps();
1310
+ const existingApp = existingApps.find((app) => app.name === '[DEFAULT]');
1311
+ let app;
1312
+ let auth;
1313
+ let db;
1314
+ if (existingApp) {
1315
+ // ✅ FIX #2: Reuse existing app instead of creating new one
1316
+ console.log('[SeaVerse SDK] Reusing existing Firebase app');
1317
+ app = existingApp;
1318
+ auth = getAuth(app);
1319
+ db = getFirestore(app, tokenResponse.database_id);
1320
+ // ✅ FIX #4: Re-authenticate with new token (for token refresh scenarios)
1321
+ try {
1322
+ await signInWithCustomToken(auth, tokenResponse.custom_token);
1323
+ console.log('[SeaVerse SDK] Re-authenticated with new token');
1324
+ }
1325
+ catch (error) {
1326
+ // If already signed in with same token, ignore error
1327
+ // Only throw if it's a real authentication failure
1328
+ if (error?.code !== 'auth/invalid-credential' && error?.code !== 'auth/network-request-failed') {
1329
+ console.warn('[SeaVerse SDK] Re-authentication warning:', error?.message || error);
1330
+ }
1331
+ }
1332
+ }
1333
+ else {
1334
+ // ✅ FIX #4: First-time initialization with proper error handling
1335
+ console.log('[SeaVerse SDK] Initializing new Firebase app');
1336
+ try {
1337
+ const config = getFirebaseConfig(tokenResponse);
1338
+ app = initializeApp(config);
1339
+ auth = getAuth(app);
1340
+ await signInWithCustomToken(auth, tokenResponse.custom_token);
1341
+ // IMPORTANT: Must specify database_id, not just use default!
1342
+ db = getFirestore(app, tokenResponse.database_id);
1343
+ }
1344
+ catch (error) {
1345
+ // ✅ FIX #4: Cleanup on failure to prevent half-initialized state
1346
+ if (app) {
1347
+ try {
1348
+ await app.delete();
1349
+ console.log('[SeaVerse SDK] Cleaned up failed Firebase app initialization');
1350
+ }
1351
+ catch (cleanupError) {
1352
+ console.warn('[SeaVerse SDK] Failed to cleanup app:', cleanupError);
1353
+ }
1354
+ }
1355
+ throw new Error(`Failed to initialize Firebase: ${error instanceof Error ? error.message : String(error)}`);
1356
+ }
1357
+ }
1298
1358
  const userId = tokenResponse.user_id;
1299
- const appId = tokenResponse.app_id || '';
1300
1359
  // Create LLM-friendly helper
1301
1360
  const helper = new FirestoreHelper(db, appId, userId);
1302
1361
  return {