@react-native-firebase/analytics 23.8.5 → 23.8.8
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 +18 -0
- package/android/src/reactnative/java/io/invertase/firebase/analytics/ReactNativeFirebaseAnalyticsModule.java +19 -4
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/ios/RNFBAnalytics/RNFBAnalyticsModule.m +18 -2
- package/lib/version.ts +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
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.8.8](https://github.com/invertase/react-native-firebase/compare/v23.8.6...v23.8.8) (2026-03-12)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **analytics, android:** use Parcelable for items serialization in logEvent ([#8879](https://github.com/invertase/react-native-firebase/issues/8879)) ([1fa290f](https://github.com/invertase/react-native-firebase/commit/1fa290f9a6a9f6e5b27e0d7ccd4a7b57cee7453b))
|
|
11
|
+
|
|
12
|
+
## [23.8.7](https://github.com/invertase/react-native-firebase/compare/v23.8.6...v23.8.7) (2026-03-12)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **analytics, android:** use Parcelable for items serialization in logEvent ([#8879](https://github.com/invertase/react-native-firebase/issues/8879)) ([1fa290f](https://github.com/invertase/react-native-firebase/commit/1fa290f9a6a9f6e5b27e0d7ccd4a7b57cee7453b))
|
|
17
|
+
|
|
18
|
+
## [23.8.6](https://github.com/invertase/react-native-firebase/compare/v23.8.5...v23.8.6) (2026-02-03)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- **analytics, ios:** correct hex string to NSData conversion for hashed conversion methods ([#8870](https://github.com/invertase/react-native-firebase/issues/8870)) ([7df6130](https://github.com/invertase/react-native-firebase/commit/7df61307f19db84df72c4d3587a8994aeb7d3fce))
|
|
23
|
+
|
|
6
24
|
## [23.8.5](https://github.com/invertase/react-native-firebase/compare/v23.8.4...v23.8.5) (2026-01-31)
|
|
7
25
|
|
|
8
26
|
### Bug Fixes
|
|
@@ -197,13 +197,28 @@ public class ReactNativeFirebaseAnalyticsModule extends ReactNativeFirebaseModul
|
|
|
197
197
|
if (bundle == null) {
|
|
198
198
|
return null;
|
|
199
199
|
}
|
|
200
|
+
|
|
200
201
|
ArrayList itemsArray = (ArrayList) bundle.getSerializable(FirebaseAnalytics.Param.ITEMS);
|
|
201
|
-
|
|
202
|
-
if (
|
|
203
|
-
|
|
204
|
-
|
|
202
|
+
if (itemsArray != null) {
|
|
203
|
+
if (itemsArray.isEmpty()) {
|
|
204
|
+
bundle.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Bundle[0]);
|
|
205
|
+
} else {
|
|
206
|
+
ArrayList<Bundle> validBundles = new ArrayList<>();
|
|
207
|
+
for (Object item : itemsArray) {
|
|
208
|
+
if (item instanceof Bundle) {
|
|
209
|
+
Bundle itemBundle = (Bundle) item;
|
|
210
|
+
if (itemBundle.containsKey(FirebaseAnalytics.Param.QUANTITY)) {
|
|
211
|
+
double number = itemBundle.getDouble(FirebaseAnalytics.Param.QUANTITY);
|
|
212
|
+
itemBundle.putInt(FirebaseAnalytics.Param.QUANTITY, (int) number);
|
|
213
|
+
}
|
|
214
|
+
validBundles.add(itemBundle);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
bundle.putParcelableArray(
|
|
218
|
+
FirebaseAnalytics.Param.ITEMS, validBundles.toArray(new Bundle[0]));
|
|
205
219
|
}
|
|
206
220
|
}
|
|
221
|
+
|
|
207
222
|
if (bundle.containsKey(FirebaseAnalytics.Param.EXTEND_SESSION)) {
|
|
208
223
|
double number = bundle.getDouble(FirebaseAnalytics.Param.EXTEND_SESSION);
|
|
209
224
|
bundle.putLong(FirebaseAnalytics.Param.EXTEND_SESSION, (long) number);
|
package/dist/module/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "23.8.
|
|
1
|
+
export declare const version = "23.8.8";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
|
@@ -176,7 +176,7 @@ RCT_EXPORT_METHOD(initiateOnDeviceConversionMeasurementWithHashedEmailAddress
|
|
|
176
176
|
: (RCTPromiseResolveBlock)resolve rejecter
|
|
177
177
|
: (RCTPromiseRejectBlock)reject) {
|
|
178
178
|
@try {
|
|
179
|
-
NSData *emailAddress = [
|
|
179
|
+
NSData *emailAddress = [self dataFromHexString:hashedEmailAddress];
|
|
180
180
|
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:emailAddress];
|
|
181
181
|
} @catch (NSException *exception) {
|
|
182
182
|
return [RNFBSharedUtils rejectPromiseWithExceptionDict:reject exception:exception];
|
|
@@ -203,7 +203,7 @@ RCT_EXPORT_METHOD(initiateOnDeviceConversionMeasurementWithHashedPhoneNumber
|
|
|
203
203
|
: (RCTPromiseResolveBlock)resolve rejecter
|
|
204
204
|
: (RCTPromiseRejectBlock)reject) {
|
|
205
205
|
@try {
|
|
206
|
-
NSData *phoneNumber = [
|
|
206
|
+
NSData *phoneNumber = [self dataFromHexString:hashedPhoneNumber];
|
|
207
207
|
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:phoneNumber];
|
|
208
208
|
} @catch (NSException *exception) {
|
|
209
209
|
return [RNFBSharedUtils rejectPromiseWithExceptionDict:reject exception:exception];
|
|
@@ -265,4 +265,20 @@ RCT_EXPORT_METHOD(setConsent
|
|
|
265
265
|
return [value isEqual:[NSNull null]] ? nil : value;
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
/// Converts a hex string to NSData
|
|
269
|
+
/// @param hexString A hex string (e.g., SHA256 hash as 64-character hex string)
|
|
270
|
+
/// @return NSData containing the decoded bytes (e.g., 32 bytes for SHA256)
|
|
271
|
+
- (NSData *)dataFromHexString:(NSString *)hexString {
|
|
272
|
+
NSMutableData *data = [NSMutableData dataWithCapacity:hexString.length / 2];
|
|
273
|
+
unsigned char wholeByte;
|
|
274
|
+
char byteChars[3] = {'\0', '\0', '\0'};
|
|
275
|
+
for (NSUInteger i = 0; i < hexString.length; i += 2) {
|
|
276
|
+
byteChars[0] = [hexString characterAtIndex:i];
|
|
277
|
+
byteChars[1] = [hexString characterAtIndex:i + 1];
|
|
278
|
+
wholeByte = strtol(byteChars, NULL, 16);
|
|
279
|
+
[data appendBytes:&wholeByte length:1];
|
|
280
|
+
}
|
|
281
|
+
return data;
|
|
282
|
+
}
|
|
283
|
+
|
|
268
284
|
@end
|
package/lib/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '23.8.
|
|
2
|
+
export const version = '23.8.8';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-firebase/analytics",
|
|
3
|
-
"version": "23.8.
|
|
3
|
+
"version": "23.8.8",
|
|
4
4
|
"author": "Invertase <oss@invertase.io> (http://invertase.io)",
|
|
5
5
|
"description": "React Native Firebase - The analytics module provides out of the box support with Google Analytics for Firebase. Integration with the Android & iOS allows for in-depth analytical insight reporting, such as device information, location, user actions and more.",
|
|
6
6
|
"main": "./dist/module/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"analytics"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@react-native-firebase/app": "23.8.
|
|
26
|
+
"@react-native-firebase/app": "23.8.8"
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"node_modules/",
|
|
66
66
|
"dist/"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "d17b898bee0be82259fc1b88f46106a927bf81aa"
|
|
69
69
|
}
|