@react-native-firebase/app 22.3.0 → 23.0.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/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [23.0.0](https://github.com/invertase/react-native-firebase/compare/v22.4.0...v23.0.0) (2025-08-07)
7
+
8
+ ### ⚠ BREAKING CHANGES
9
+
10
+ - new minimums: iOS 15+, Xcode 16.2+
11
+ - requires node v20+ and ES2020+
12
+ - android minSdk now must be 23+ (was 21)
13
+ - **dynamic-links:** remove Dynamic Links from React Native Firebase (#8631)
14
+
15
+ ### Features
16
+
17
+ - bump Firebase android SDK to `34.0.0` ([#8627](https://github.com/invertase/react-native-firebase/issues/8627)) ([e9ef5ec](https://github.com/invertase/react-native-firebase/commit/e9ef5ec9742f28ec1d621a401f82125acff0f1cf))
18
+ - bump firebase-ios-sdk to `12.0.0` ([e3d6d22](https://github.com/invertase/react-native-firebase/commit/e3d6d222f0a83f6a3f6ea6975401e4b03cc4421a))
19
+ - bump firebase-js-sdk to `12.0.0` ([ab0529e](https://github.com/invertase/react-native-firebase/commit/ab0529ef5cfc1382688ee220aeb46eba4dcf9761))
20
+
21
+ ### Bug Fixes
22
+
23
+ - **app, ios:** adopt firebase-ios-sdk 12.1.0 ([8be970c](https://github.com/invertase/react-native-firebase/commit/8be970c86fff5ad8d046ccba442f54bec3ecaf41))
24
+ - **dynamic-links:** remove Dynamic Links from React Native Firebase ([#8631](https://github.com/invertase/react-native-firebase/issues/8631)) ([fe4550f](https://github.com/invertase/react-native-firebase/commit/fe4550f362548dcb66359044715e22222a413f97))
25
+
26
+ ## [22.4.0](https://github.com/invertase/react-native-firebase/compare/v22.3.0...v22.4.0) (2025-07-10)
27
+
28
+ **Note:** Version bump only for package @react-native-firebase/app
29
+
6
30
  ## [22.3.0](https://github.com/invertase/react-native-firebase/compare/v22.2.1...v22.3.0) (2025-07-08)
7
31
 
8
32
  ### Bug Fixes
@@ -18,5 +18,5 @@ package io.invertase.firebase.app;
18
18
  */
19
19
  // generated file - do not modify or commit
20
20
  public class ReactNativeFirebaseVersion {
21
- public static String VERSION = "22.3.0";
21
+ public static String VERSION = "23.0.0";
22
22
  }
@@ -53,7 +53,7 @@ public class RCTConvertFirebase {
53
53
  options.put("appId", appOptions.getApplicationId());
54
54
  options.put("projectId", appOptions.getProjectId());
55
55
  options.put("databaseURL", appOptions.getDatabaseUrl());
56
- options.put("gaTrackingId", appOptions.getGaTrackingId());
56
+ options.put("measurementId", appOptions.getGaTrackingId());
57
57
  options.put("messagingSenderId", appOptions.getGcmSenderId());
58
58
  options.put("storageBucket", appOptions.getStorageBucket());
59
59
 
@@ -82,8 +82,8 @@ public class RCTConvertFirebase {
82
82
  builder.setProjectId(options.getString("projectId"));
83
83
  builder.setDatabaseUrl(options.getString("databaseURL"));
84
84
 
85
- if (options.hasKey("gaTrackingId")) {
86
- builder.setGaTrackingId(options.getString("gaTrackingId"));
85
+ if (options.hasKey("measurementId")) {
86
+ builder.setGaTrackingId(options.getString("measurementId"));
87
87
  }
88
88
 
89
89
  builder.setStorageBucket(options.getString("storageBucket"));
@@ -26,11 +26,8 @@
26
26
  firOptions.APIKey = [rawOptions valueForKey:@"apiKey"];
27
27
  firOptions.projectID = [rawOptions valueForKey:@"projectId"];
28
28
  firOptions.clientID = [rawOptions valueForKey:@"clientId"];
29
- firOptions.trackingID = [rawOptions valueForKey:@"gaTrackingId"];
30
29
  firOptions.databaseURL = [rawOptions valueForKey:@"databaseURL"];
31
30
  firOptions.storageBucket = [rawOptions valueForKey:@"storageBucket"];
32
- firOptions.androidClientID = [rawOptions valueForKey:@"androidClientId"];
33
- firOptions.deepLinkURLScheme = [rawOptions valueForKey:@"deepLinkURLScheme"];
34
31
  firOptions.bundleID = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"];
35
32
  return firOptions;
36
33
  }
@@ -190,10 +190,7 @@ RCT_EXPORT_METHOD(initializeApp
190
190
  if (![[options valueForKey:@"storageBucket"] isEqual:[NSNull null]]) {
191
191
  firOptions.storageBucket = [options valueForKey:@"storageBucket"];
192
192
  }
193
- // kFirebaseOptionsDeepLinkURLScheme
194
- if (![[options valueForKey:@"deepLinkURLScheme"] isEqual:[NSNull null]]) {
195
- firOptions.deepLinkURLScheme = [options valueForKey:@"deepLinkURLScheme"];
196
- }
193
+
197
194
  // kFirebaseOptionsIosBundleId
198
195
  if (![[options valueForKey:@"iosBundleId"] isEqual:[NSNull null]]) {
199
196
  firOptions.bundleID = [options valueForKey:@"iosBundleId"];
@@ -59,13 +59,10 @@ static NSString *const RNFBErrorDomain = @"RNFBErrorDomain";
59
59
  firAppOptions[@"appId"] = firOptions.googleAppID;
60
60
  firAppOptions[@"projectId"] = firOptions.projectID;
61
61
  firAppOptions[@"databaseURL"] = firOptions.databaseURL;
62
- firAppOptions[@"gaTrackingId"] = firOptions.trackingID;
63
62
  firAppOptions[@"storageBucket"] = firOptions.storageBucket;
64
63
  firAppOptions[@"messagingSenderId"] = firOptions.GCMSenderID;
65
64
  // missing from android sdk - ios only:
66
65
  firAppOptions[@"clientId"] = firOptions.clientID;
67
- firAppOptions[@"androidClientID"] = firOptions.androidClientID;
68
- firAppOptions[@"deepLinkUrlScheme"] = firOptions.deepLinkURLScheme;
69
66
  // not in FIROptions API but in JS SDK and project config JSON
70
67
  if ([RNFBAppModule getCustomDomain:name] != nil) {
71
68
  firAppOptions[@"authDomain"] = [RNFBAppModule getCustomDomain:name];
@@ -18,4 +18,4 @@
18
18
  #import <React/RCTVersion.h>
19
19
 
20
20
  // generated file - do not modify or commit
21
- NSString* const RNFBVersionString = @"22.3.0";
21
+ NSString* const RNFBVersionString = @"23.0.0";
@@ -268,6 +268,47 @@ const mapOfDeprecationReplacements = {
268
268
  setCrashlyticsCollectionEnabled: 'setCrashlyticsCollectionEnabled()',
269
269
  },
270
270
  },
271
+
272
+ database: {
273
+ default: {
274
+ useEmulator: 'connectDatabaseEmulator()',
275
+ goOffline: 'goOffline()',
276
+ goOnline: 'goOnline()',
277
+ ref: 'ref()',
278
+ refFromURL: 'refFromURL()',
279
+ setPersistenceEnabled: 'setPersistenceEnabled()',
280
+ setLoggingEnabled: 'setLoggingEnabled()',
281
+ setPersistenceCacheSizeBytes: 'setPersistenceCacheSizeBytes()',
282
+ getServerTime: 'getServerTime()',
283
+ },
284
+ statics: {
285
+ ServerValue: 'ServerValue',
286
+ },
287
+ DatabaseReference: {
288
+ child: 'child()',
289
+ set: 'set()',
290
+ update: 'update()',
291
+ setWithPriority: 'setWithPriority()',
292
+ remove: 'remove()',
293
+ on: 'onValue()',
294
+ once: 'get()',
295
+ endAt: 'endAt()',
296
+ endBefore: 'endBefore()',
297
+ startAt: 'startAt()',
298
+ startAfter: 'startAfter()',
299
+ limitToFirst: 'limitToFirst()',
300
+ limitToLast: 'limitToLast()',
301
+ orderByChild: 'orderByChild()',
302
+ orderByKey: 'orderByKey()',
303
+ orderByValue: 'orderByValue()',
304
+ equalTo: 'equalTo()',
305
+ setPriority: 'setPriority()',
306
+ push: 'push()',
307
+ onDisconnect: 'onDisconnect()',
308
+ keepSynced: 'keepSynced()',
309
+ transaction: 'runTransaction()',
310
+ },
311
+ },
271
312
  firestore: {
272
313
  default: {
273
314
  batch: 'writeBatch()',
@@ -519,6 +560,9 @@ export function createMessage(
519
560
  }
520
561
 
521
562
  function getNamespace(target) {
563
+ if (target.constructor.name === 'DatabaseReference') {
564
+ return 'database';
565
+ }
522
566
  if (target.GeoPoint || target.CustomProvider) {
523
567
  // target is statics object. GeoPoint - Firestore, CustomProvider - AppCheck
524
568
  return 'firestore';
@@ -529,7 +573,6 @@ function getNamespace(target) {
529
573
  if (target.constructor.name === 'StorageReference') {
530
574
  return 'storage';
531
575
  }
532
-
533
576
  const className = target.name ? target.name : target.constructor.name;
534
577
  return Object.keys(mapOfDeprecationReplacements).find(key => {
535
578
  if (mapOfDeprecationReplacements[key][className]) {
@@ -543,6 +586,9 @@ function getInstanceName(target) {
543
586
  // target is statics object. GeoPoint - Firestore, CustomProvider - AppCheck
544
587
  return 'statics';
545
588
  }
589
+ if (target.ServerValue) {
590
+ return 'statics';
591
+ }
546
592
  if (target._config) {
547
593
  // module class instance, we use default to store map of deprecated methods
548
594
  return 'default';
@@ -625,6 +671,9 @@ export function createDeprecationProxy(instance) {
625
671
  ) {
626
672
  deprecationConsoleWarning('messaging', prop, 'statics', false);
627
673
  }
674
+ if (prop === 'ServerValue') {
675
+ deprecationConsoleWarning('database', prop, 'statics', false);
676
+ }
628
677
 
629
678
  if (prop !== 'setLogLevel') {
630
679
  // we want to capture setLogLevel function call which we do below
package/lib/index.d.ts CHANGED
@@ -85,8 +85,7 @@ export namespace ReactNativeFirebase {
85
85
  /**
86
86
  * The tracking ID for Google Analytics, e.g. "UA-12345678-1", used to configure Google Analytics.
87
87
  */
88
- // TODO this should now be measurementId
89
- gaTrackingId?: string;
88
+ measurementId?: string;
90
89
 
91
90
  /**
92
91
  * The Google Cloud Storage bucket name, e.g. "abc-xyz-123.storage.firebase.com".
@@ -33,7 +33,6 @@ export const KNOWN_NAMESPACES = [
33
33
  'functions',
34
34
  'indexing',
35
35
  'storage',
36
- 'dynamicLinks',
37
36
  'messaging',
38
37
  'naturalLanguage',
39
38
  'ml',
@@ -74,11 +74,7 @@ export default {
74
74
  newAppConfig.automaticDataCollectionEnabled = appConfig.automaticDataCollectionEnabled;
75
75
  }
76
76
  const optionsCopy = Object.assign({}, options);
77
- // TODO RNFB is using the old gaTrackingId property, we should remove this in the future
78
- // in favor of the measurementId property.
79
- if (optionsCopy.gaTrackingId) {
80
- optionsCopy.measurementId = optionsCopy.gaTrackingId;
81
- }
77
+
82
78
  delete optionsCopy.clientId;
83
79
  initializeApp(optionsCopy, newAppConfig);
84
80
  return {
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- module.exports = '22.3.0';
2
+ module.exports = '23.0.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-firebase/app",
3
- "version": "22.3.0",
3
+ "version": "23.0.0",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Storage and more.",
6
6
  "main": "lib/index.js",
@@ -57,7 +57,7 @@
57
57
  "react-native": "*"
58
58
  },
59
59
  "dependencies": {
60
- "firebase": "11.10.0"
60
+ "firebase": "12.0.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@react-native-async-storage/async-storage": "^2.1.2",
@@ -74,22 +74,22 @@
74
74
  },
75
75
  "sdkVersions": {
76
76
  "ios": {
77
- "firebase": "11.15.0",
78
- "iosTarget": "13.0",
77
+ "firebase": "12.1.0",
78
+ "iosTarget": "15.0",
79
79
  "macosTarget": "10.15",
80
- "tvosTarget": "13.0"
80
+ "tvosTarget": "15.0"
81
81
  },
82
82
  "android": {
83
- "minSdk": 21,
83
+ "minSdk": 23,
84
84
  "targetSdk": 34,
85
85
  "compileSdk": 34,
86
- "firebase": "33.16.0",
87
- "firebaseCrashlyticsGradle": "3.0.4",
88
- "firebasePerfGradle": "1.4.2",
86
+ "firebase": "34.0.0",
87
+ "firebaseCrashlyticsGradle": "3.0.5",
88
+ "firebasePerfGradle": "2.0.0",
89
89
  "gmsGoogleServicesGradle": "4.4.3",
90
- "playServicesAuth": "21.3.0",
91
- "firebaseAppDistributionGradle": "5.1.1"
90
+ "playServicesAuth": "21.4.0",
91
+ "firebaseAppDistributionGradle": "5.1.2"
92
92
  }
93
93
  },
94
- "gitHead": "c04f2a3b681460edde5518812646cf5e0dd86627"
94
+ "gitHead": "14c35416e62f3626d6c2aee2ffd000bd2337884b"
95
95
  }