diff --git a/apps/test-suite/tests/FirebaseAnalytics.js b/apps/test-suite/tests/FirebaseAnalytics.js index 01b43ffeffeec..81a54a3c6080f 100644 --- a/apps/test-suite/tests/FirebaseAnalytics.js +++ b/apps/test-suite/tests/FirebaseAnalytics.js @@ -44,6 +44,26 @@ export async function test({ describe, beforeAll, afterAll, it, xit, expect }) { expect(error).not.toBeNull(); }); }); + describe('logEvent() - without optional properties', async () => { + itWhenConfigured(`runs`, async () => { + let error = null; + try { + await Analytics.logEvent('event_name'); + } catch (e) { + error = e; + } + expect(error).toBeNull(); + }); + itWhenNotConfigured('fails when not configured', async () => { + let error = null; + try { + await Analytics.logEvent('event_name'); + } catch (e) { + error = e; + } + expect(error).not.toBeNull(); + }); + }); describe('setCurrentScreen()', async () => { itWhenConfigured(`runs`, async () => { let error = null; diff --git a/packages/expo-firebase-analytics/CHANGELOG.md b/packages/expo-firebase-analytics/CHANGELOG.md index b15ac920684ed..e16992f0834cc 100644 --- a/packages/expo-firebase-analytics/CHANGELOG.md +++ b/packages/expo-firebase-analytics/CHANGELOG.md @@ -12,4 +12,6 @@ - Fix no events recorded on the Expo client when running on certain Android devices. ([#7679](https://github.com/expo/expo/pull/7679) by [@IjzerenHein](https://github.com/IjzerenHein)) - Fix `setAnalyticsCollectionEnabled` throwing an error. -- Fixes & improvements to the pure JS analytics client. ([#7796](https://github.com/expo/expo/pull/7796) by [@IjzerenHein](https://github.com/IjzerenHein)) \ No newline at end of file +- Fixes & improvements to the pure JS analytics client. ([#7796](https://github.com/expo/expo/pull/7796) by [@IjzerenHein](https://github.com/IjzerenHein)) +- Fixed logEvent in `expo-firebase-analytics` for Android. logEvent's optional properties parameter was causing a NPE on Android when not provided. ([#7897](https://github.com/expo/expo/pull/7897) by [@thorbenprimke](https://github.com/thorbenprimke)) + diff --git a/packages/expo-firebase-analytics/android/src/main/java/expo/modules/firebase/analytics/FirebaseAnalyticsModule.java b/packages/expo-firebase-analytics/android/src/main/java/expo/modules/firebase/analytics/FirebaseAnalyticsModule.java index d3a46434d768b..dda449de5518c 100644 --- a/packages/expo-firebase-analytics/android/src/main/java/expo/modules/firebase/analytics/FirebaseAnalyticsModule.java +++ b/packages/expo-firebase-analytics/android/src/main/java/expo/modules/firebase/analytics/FirebaseAnalyticsModule.java @@ -81,7 +81,7 @@ public void logEvent(final String name, @Nullable Map params, Pr FirebaseAnalytics analytics = getFirebaseAnalyticsOrReject(promise); if (analytics == null) return; - analytics.logEvent(name, new MapArguments(params).toBundle()); + analytics.logEvent(name, params == null ? null : new MapArguments(params).toBundle()); promise.resolve(null); } catch (Exception e) { promise.reject(e);