@umituz/react-native-firebase 1.8.1 → 1.9.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-firebase",
3
- "version": "1.8.1",
3
+ "version": "1.9.0",
4
4
  "description": "Unified Firebase package for React Native apps - Centralized initialization and core services (Analytics, Crashlytics).",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -30,6 +30,7 @@
30
30
  "@react-native-firebase/analytics": ">=18.0.0",
31
31
  "@react-native-firebase/app": ">=18.0.0",
32
32
  "@react-native-firebase/crashlytics": ">=18.0.0",
33
+ "firebase": ">=10.0.0",
33
34
  "react": ">=18.2.0",
34
35
  "react-native": ">=0.74.0"
35
36
  },
@@ -38,6 +39,7 @@
38
39
  "@react-native-firebase/app": "^19.0.0",
39
40
  "@react-native-firebase/crashlytics": "^19.0.0",
40
41
  "@types/react": "~19.1.10",
42
+ "firebase": "^12.6.0",
41
43
  "react": "19.1.0",
42
44
  "react-native": "0.81.5",
43
45
  "typescript": "~5.9.2"
@@ -21,6 +21,8 @@ import {
21
21
  type FirebaseApp,
22
22
  } from './initializers/FirebaseAppInitializer';
23
23
  import { loadFirebaseConfig } from './FirebaseConfigLoader';
24
+ import { firebaseAnalyticsService } from '../../analytics';
25
+ import { firebaseCrashlyticsService } from '../../crashlytics';
24
26
 
25
27
  export type { FirebaseApp };
26
28
 
@@ -299,23 +301,26 @@ interface ServiceInitializationResult {
299
301
  */
300
302
  class ServiceInitializer {
301
303
  /**
302
- * Initialize optional Firebase service with error handling
304
+ * Initialize Firebase Auth from external package
303
305
  */
304
- private static initializeService(
305
- packageName: string,
306
- initializerName: string,
307
- isAsync = false
308
- ): any | null {
306
+ private static initializeAuth(): any | null {
309
307
  try {
310
- const serviceModule = require(packageName);
311
- const service = serviceModule[initializerName];
312
-
313
- if (isAsync && typeof service.init === 'function') {
314
- return service;
308
+ const authModule = require('@umituz/react-native-firebase-auth');
309
+ const initializeFirebaseAuth = authModule.initializeFirebaseAuth;
310
+
311
+ if (typeof initializeFirebaseAuth !== 'function') {
312
+ if (__DEV__) {
313
+ console.warn('[Firebase] initializeFirebaseAuth is not a function');
314
+ }
315
+ return null;
315
316
  }
316
317
 
317
- return typeof service === 'function' ? service() : service;
318
- } catch {
318
+ const auth = initializeFirebaseAuth();
319
+ return auth;
320
+ } catch (error) {
321
+ if (__DEV__) {
322
+ console.warn('[Firebase] Auth package not available:', error instanceof Error ? error.message : 'Unknown error');
323
+ }
319
324
  return null;
320
325
  }
321
326
  }
@@ -332,22 +337,12 @@ class ServiceInitializer {
332
337
  console.log('[Firebase] Initializing optional services...');
333
338
  }
334
339
 
335
- const auth = this.initializeService(
336
- '@umituz/react-native-firebase-auth',
337
- 'initializeFirebaseAuth'
338
- );
339
-
340
- const analytics = this.initializeService(
341
- '@umituz/react-native-firebase-analytics',
342
- 'firebaseAnalyticsService',
343
- true
344
- );
345
-
346
- const crashlytics = this.initializeService(
347
- '@umituz/react-native-firebase-crashlytics',
348
- 'firebaseCrashlyticsService',
349
- true
350
- );
340
+ // Initialize auth from external package
341
+ const auth = this.initializeAuth();
342
+
343
+ // Analytics and Crashlytics are local modules - use imported services directly
344
+ const analytics = firebaseAnalyticsService;
345
+ const crashlytics = firebaseCrashlyticsService;
351
346
 
352
347
  if (__DEV__) {
353
348
  console.log('[Firebase] Services initialized - Auth:', !!auth, 'Analytics:', !!analytics, 'Crashlytics:', !!crashlytics);