@react-native-firebase/app 21.13.0 → 22.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 +29 -0
- package/android/build.gradle +6 -6
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
- package/firebase-schema.json +9 -6
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/lib/internal/registry/app.js +6 -10
- package/lib/modular/index.d.ts +10 -2
- package/lib/modular/index.js +11 -0
- package/lib/version.js +1 -1
- package/package.json +8 -7
- package/plugin/build/ios/appDelegate.js +1 -1
- package/plugin/src/ios/appDelegate.ts +2 -2
- package/plugin/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,35 @@
|
|
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
|
+
## [22.0.0](https://github.com/invertase/react-native-firebase/compare/v21.14.0...v22.0.0) (2025-04-25)
|
7
|
+
|
8
|
+
### ⚠ BREAKING CHANGES
|
9
|
+
|
10
|
+
- **app, sdks:** firebase-ios-sdk 11.12.0 requires Xcode 16.2+
|
11
|
+
|
12
|
+
### Features
|
13
|
+
|
14
|
+
- **app, sdks:** firebase-ios-sdk 11.12.0 / firebase-android-sdk 33.13.0 ([c63d843](https://github.com/invertase/react-native-firebase/commit/c63d8435b678742cfdd98f4d1d8895134cb9cf09))
|
15
|
+
|
16
|
+
### Bug Fixes
|
17
|
+
|
18
|
+
- **analytics:** Type defs ([#8363](https://github.com/invertase/react-native-firebase/issues/8363)) ([74efc84](https://github.com/invertase/react-native-firebase/commit/74efc848e3ecda47b5c7cdf79e5e72370cd10b7d))
|
19
|
+
- **android:** use `=` assignment vs deprecated space-assignment ([39c2ecb](https://github.com/invertase/react-native-firebase/commit/39c2ecb0069a8a5a65b04fb7f86ccecf83273868))
|
20
|
+
- enable provenance signing during publish ([4535f0d](https://github.com/invertase/react-native-firebase/commit/4535f0d5756c89aeb8f8e772348c71d8176348be))
|
21
|
+
|
22
|
+
## [21.14.0](https://github.com/invertase/react-native-firebase/compare/v21.13.0...v21.14.0) (2025-04-14)
|
23
|
+
|
24
|
+
### Features
|
25
|
+
|
26
|
+
- **messaging, android:** notification delegation APIs, firebase.json feature toggle ([c0c5054](https://github.com/invertase/react-native-firebase/commit/c0c505432e95c85fa6621b548b24e755e2894c37))
|
27
|
+
- **messaging, android:** support BigQuery export setting in firebase.json ([fa0e967](https://github.com/invertase/react-native-firebase/commit/fa0e967f9a06719c159a4980749f80c5ff2e2c39))
|
28
|
+
|
29
|
+
### Bug Fixes
|
30
|
+
|
31
|
+
- **app, expo:** update iOS AppDelegate for SDK 53 support ([a3d82c7](https://github.com/invertase/react-native-firebase/commit/a3d82c73e746fe3d2ac4513b15696ced98ecf2ca))
|
32
|
+
- **app:** annotate initializeApp return as a promise ([#8366](https://github.com/invertase/react-native-firebase/issues/8366)) ([5189c32](https://github.com/invertase/react-native-firebase/commit/5189c328e2643cdaf9c96059ce139b34c7651466))
|
33
|
+
- **app:** firebase-ios-sdk 11.11.0 / firebase-android-sdk 33.12.0 ([1bfd3eb](https://github.com/invertase/react-native-firebase/commit/1bfd3eb5558296deff7a368a607163019b1d4d11))
|
34
|
+
|
6
35
|
## [21.13.0](https://github.com/invertase/react-native-firebase/compare/v21.12.3...v21.13.0) (2025-03-31)
|
7
36
|
|
8
37
|
**Note:** Version bump only for package @react-native-firebase/app
|
package/android/build.gradle
CHANGED
@@ -62,11 +62,11 @@ if (rootProject.ext && rootProject.ext.firebaseJson) {
|
|
62
62
|
android {
|
63
63
|
def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger()
|
64
64
|
if (agpVersion >= 7) {
|
65
|
-
namespace 'io.invertase.firebase'
|
65
|
+
namespace = 'io.invertase.firebase'
|
66
66
|
}
|
67
67
|
|
68
68
|
defaultConfig {
|
69
|
-
multiDexEnabled true
|
69
|
+
multiDexEnabled = true
|
70
70
|
manifestPlaceholders = [
|
71
71
|
firebaseJsonDataCollectionDefaultEnabled: dataCollectionDefaultEnabled
|
72
72
|
]
|
@@ -74,17 +74,17 @@ android {
|
|
74
74
|
|
75
75
|
buildFeatures {
|
76
76
|
// AGP 8 no longer builds config by default
|
77
|
-
buildConfig true
|
77
|
+
buildConfig = true
|
78
78
|
}
|
79
79
|
|
80
80
|
lintOptions {
|
81
81
|
disable 'GradleCompatible'
|
82
|
-
abortOnError false
|
82
|
+
abortOnError = false
|
83
83
|
}
|
84
84
|
if (agpVersion < 8) {
|
85
85
|
compileOptions {
|
86
|
-
sourceCompatibility JavaVersion.VERSION_11
|
87
|
-
targetCompatibility JavaVersion.VERSION_11
|
86
|
+
sourceCompatibility = JavaVersion.VERSION_11
|
87
|
+
targetCompatibility = JavaVersion.VERSION_11
|
88
88
|
}
|
89
89
|
}
|
90
90
|
|
package/firebase-schema.json
CHANGED
@@ -56,12 +56,7 @@
|
|
56
56
|
"app_log_level": {
|
57
57
|
"description": "Set the log level across all modules. Only applies to iOS currently. Can be 'error', 'warn', 'info', 'debug'.\n Logs messages at the configured level or lower.\n Note that if an app is running from AppStore, it will never log above info even if level is set to a higher (more verbose) setting",
|
58
58
|
"type": "string",
|
59
|
-
"enum": [
|
60
|
-
"error",
|
61
|
-
"warn",
|
62
|
-
"info",
|
63
|
-
"debug"
|
64
|
-
]
|
59
|
+
"enum": ["error", "warn", "info", "debug"]
|
65
60
|
},
|
66
61
|
"app_check_token_auto_refresh": {
|
67
62
|
"description": "If this flag is disabled then Firebase App Check will not periodically auto-refresh the app check token.\n This is useful for opt-in-first data flows, for example when dealing with GDPR compliance. \nIf unset it will default to the SDK-wide data collection default enabled setting. This may be overridden dynamically in Javascript.",
|
@@ -100,10 +95,18 @@
|
|
100
95
|
"type": "number",
|
101
96
|
"minimum": 0
|
102
97
|
},
|
98
|
+
"messaging_android_notification_delegation_enabled": {
|
99
|
+
"description": "On Android Q+ and current Play Services, your FCM may be delegated which disables firebase message listeners. Disabled by default. You may re-enable if necessary",
|
100
|
+
"type": "boolean"
|
101
|
+
},
|
103
102
|
"messaging_android_notification_channel_id": {
|
104
103
|
"description": "On Android, any message which displays a Notification use a default Notification Channel (created by FCM called `Miscellaneous`). This channel contains basic notification settings which may not be appropriate for your application. You can change what Channel is used by updating the `messaging_android_notification_channel_id` property.",
|
105
104
|
"type": "string"
|
106
105
|
},
|
106
|
+
"messaging_android_notification_delivery_metrics_export_enabled": {
|
107
|
+
"description": "Determines whether Firebase Cloud Messaging exports message delivery metrics to BigQuery. Defaults to disabled.",
|
108
|
+
"type": "boolean"
|
109
|
+
},
|
107
110
|
"messaging_android_notification_color": {
|
108
111
|
"description": "On Android, any messages which display a Notification do not use a color to tint the content (such as the small icon, title etc). To provide a custom tint color, update the messaging_android_notification_color property with a Android color resource name. \n The library provides a set of predefined colors corresponding to the HTML colors for convenience",
|
109
112
|
"type": "string"
|
@@ -218,26 +218,22 @@ export function setLogLevel(logLevel) {
|
|
218
218
|
}
|
219
219
|
|
220
220
|
export function setReactNativeAsyncStorage(asyncStorage) {
|
221
|
+
warnIfNotModularCall(arguments, 'setReactNativeAsyncStorage()');
|
222
|
+
|
221
223
|
if (!isObject(asyncStorage)) {
|
222
|
-
throw new Error("
|
224
|
+
throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage' must be an object.");
|
223
225
|
}
|
224
226
|
|
225
227
|
if (!isFunction(asyncStorage.setItem)) {
|
226
|
-
throw new Error(
|
227
|
-
"firebase.setReactNativeAsyncStorage(*) 'asyncStorage.setItem' must be a function.",
|
228
|
-
);
|
228
|
+
throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.setItem' must be a function.");
|
229
229
|
}
|
230
230
|
|
231
231
|
if (!isFunction(asyncStorage.getItem)) {
|
232
|
-
throw new Error(
|
233
|
-
"firebase.setReactNativeAsyncStorage(*) 'asyncStorage.getItem' must be a function.",
|
234
|
-
);
|
232
|
+
throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.getItem' must be a function.");
|
235
233
|
}
|
236
234
|
|
237
235
|
if (!isFunction(asyncStorage.removeItem)) {
|
238
|
-
throw new Error(
|
239
|
-
"firebase.setReactNativeAsyncStorage(*) 'asyncStorage.removeItem' must be a function.",
|
240
|
-
);
|
236
|
+
throw new Error("setReactNativeAsyncStorage(*) 'asyncStorage.removeItem' must be a function.");
|
241
237
|
}
|
242
238
|
|
243
239
|
setReactNativeAsyncStorageInternal(asyncStorage);
|
package/lib/modular/index.d.ts
CHANGED
@@ -53,9 +53,9 @@ export function getApps(): FirebaseApp[];
|
|
53
53
|
* Initializes a Firebase app with the provided options and name.
|
54
54
|
* @param options - Options to configure the services used in the app.
|
55
55
|
* @param name - The optional name of the app to initialize ('[DEFAULT]' if omitted).
|
56
|
-
* @returns FirebaseApp - The initialized Firebase app.
|
56
|
+
* @returns Promise<FirebaseApp> - The initialized Firebase app.
|
57
57
|
*/
|
58
|
-
export function initializeApp(options: FirebaseAppOptions, name?: string): FirebaseApp
|
58
|
+
export function initializeApp(options: FirebaseAppOptions, name?: string): Promise<FirebaseApp>;
|
59
59
|
|
60
60
|
/**
|
61
61
|
* Retrieves an instance of a Firebase app.
|
@@ -70,3 +70,11 @@ export function getApp(name?: string): FirebaseApp;
|
|
70
70
|
* @returns void
|
71
71
|
*/
|
72
72
|
export function setLogLevel(logLevel: LogLevelString): void;
|
73
|
+
|
74
|
+
/**
|
75
|
+
* The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
|
76
|
+
* If not specified, in memory persistence is used.
|
77
|
+
*
|
78
|
+
* This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
|
79
|
+
*/
|
80
|
+
export function setReactNativeAsyncStorage(asyncStorage: ReactNativeAsyncStorage): void;
|
package/lib/modular/index.js
CHANGED
@@ -6,6 +6,7 @@ import {
|
|
6
6
|
getApps as getAppsCompat,
|
7
7
|
initializeApp as initializeAppCompat,
|
8
8
|
setLogLevel as setLogLevelCompat,
|
9
|
+
setReactNativeAsyncStorage as setReactNativeAsyncStorageCompat,
|
9
10
|
} from '../internal';
|
10
11
|
import { setUserLogHandler } from '../internal/logger';
|
11
12
|
import sdkVersion from '../version';
|
@@ -84,4 +85,14 @@ export function setLogLevel(logLevel) {
|
|
84
85
|
return setLogLevelCompat.call(null, logLevel, MODULAR_DEPRECATION_ARG);
|
85
86
|
}
|
86
87
|
|
88
|
+
/**
|
89
|
+
* The `AsyncStorage` implementation to use for persisting data on 'Other' platforms.
|
90
|
+
* If not specified, in memory persistence is used.
|
91
|
+
*
|
92
|
+
* This is required if you want to persist things like Auth sessions, Analytics device IDs, etc.
|
93
|
+
*/
|
94
|
+
export function setReactNativeAsyncStorage(asyncStorage) {
|
95
|
+
return setReactNativeAsyncStorageCompat.call(null, asyncStorage, MODULAR_DEPRECATION_ARG);
|
96
|
+
}
|
97
|
+
|
87
98
|
export const SDK_VERSION = sdkVersion;
|
package/lib/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
// Generated by genversion.
|
2
|
-
module.exports = '
|
2
|
+
module.exports = '22.0.0';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@react-native-firebase/app",
|
3
|
-
"version": "
|
3
|
+
"version": "22.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",
|
@@ -60,8 +60,8 @@
|
|
60
60
|
"firebase": "11.3.1"
|
61
61
|
},
|
62
62
|
"devDependencies": {
|
63
|
-
"@react-native-async-storage/async-storage": "^2.1.
|
64
|
-
"expo": "^52.0.
|
63
|
+
"@react-native-async-storage/async-storage": "^2.1.2",
|
64
|
+
"expo": "^52.0.46"
|
65
65
|
},
|
66
66
|
"peerDependenciesMeta": {
|
67
67
|
"expo": {
|
@@ -69,11 +69,12 @@
|
|
69
69
|
}
|
70
70
|
},
|
71
71
|
"publishConfig": {
|
72
|
-
"access": "public"
|
72
|
+
"access": "public",
|
73
|
+
"provenance": true
|
73
74
|
},
|
74
75
|
"sdkVersions": {
|
75
76
|
"ios": {
|
76
|
-
"firebase": "11.
|
77
|
+
"firebase": "11.12.0",
|
77
78
|
"iosTarget": "13.0",
|
78
79
|
"macosTarget": "10.15",
|
79
80
|
"tvosTarget": "13.0"
|
@@ -82,7 +83,7 @@
|
|
82
83
|
"minSdk": 21,
|
83
84
|
"targetSdk": 34,
|
84
85
|
"compileSdk": 34,
|
85
|
-
"firebase": "33.
|
86
|
+
"firebase": "33.13.0",
|
86
87
|
"firebaseCrashlyticsGradle": "3.0.3",
|
87
88
|
"firebasePerfGradle": "1.4.2",
|
88
89
|
"gmsGoogleServicesGradle": "4.4.2",
|
@@ -90,5 +91,5 @@
|
|
90
91
|
"firebaseAppDistributionGradle": "5.1.1"
|
91
92
|
}
|
92
93
|
},
|
93
|
-
"gitHead": "
|
94
|
+
"gitHead": "e9fee87b413c90e243347d5c60272f07f41d99b8"
|
94
95
|
}
|
@@ -64,7 +64,7 @@ function modifySwiftAppDelegate(contents) {
|
|
64
64
|
const methodInvocationLineMatcher = /(?:self\.moduleName\s*=\s*"([^"]*)")/g;
|
65
65
|
// Add import
|
66
66
|
if (!contents.includes('import FirebaseCore')) {
|
67
|
-
contents = contents.replace(/import
|
67
|
+
contents = contents.replace(/import Expo/g, `import Expo
|
68
68
|
import FirebaseCore`);
|
69
69
|
}
|
70
70
|
// To avoid potential issues with existing changes from older plugin versions
|
@@ -75,8 +75,8 @@ export function modifySwiftAppDelegate(contents: string): string {
|
|
75
75
|
// Add import
|
76
76
|
if (!contents.includes('import FirebaseCore')) {
|
77
77
|
contents = contents.replace(
|
78
|
-
/import
|
79
|
-
`import
|
78
|
+
/import Expo/g,
|
79
|
+
`import Expo
|
80
80
|
import FirebaseCore`,
|
81
81
|
);
|
82
82
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"root":["./src/index.ts","./src/android/applyPlugin.ts","./src/android/buildscriptDependency.ts","./src/android/constants.ts","./src/android/copyGoogleServices.ts","./src/android/index.ts","./src/ios/appDelegate.ts","./src/ios/googleServicesPlist.ts","./src/ios/index.ts"],"version":"5.
|
1
|
+
{"root":["./src/index.ts","./src/android/applyPlugin.ts","./src/android/buildscriptDependency.ts","./src/android/constants.ts","./src/android/copyGoogleServices.ts","./src/android/index.ts","./src/ios/appDelegate.ts","./src/ios/googleServicesPlist.ts","./src/ios/index.ts"],"version":"5.8.3"}
|