From 88b795c74ae5dd69375ea94c192414aff4513296 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Fri, 19 Sep 2025 11:07:49 -0700 Subject: [PATCH 1/3] Expose setUserProperties on internal Analytics instance. --- .changeset/young-timers-jump.md | 6 ++++++ packages/analytics-interop-types/index.d.ts | 4 ++++ packages/analytics/src/index.ts | 10 +++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 .changeset/young-timers-jump.md diff --git a/.changeset/young-timers-jump.md b/.changeset/young-timers-jump.md new file mode 100644 index 00000000000..2c572813ae8 --- /dev/null +++ b/.changeset/young-timers-jump.md @@ -0,0 +1,6 @@ +--- +'@firebase/analytics-interop-types': patch +'@firebase/analytics': patch +--- + +Expose `setUserProperties` on internal Analytics instance. diff --git a/packages/analytics-interop-types/index.d.ts b/packages/analytics-interop-types/index.d.ts index b3e2fb0fe07..106205a8ddc 100644 --- a/packages/analytics-interop-types/index.d.ts +++ b/packages/analytics-interop-types/index.d.ts @@ -29,6 +29,10 @@ export interface FirebaseAnalyticsInternal { eventParams?: { [key: string]: unknown }, options?: AnalyticsCallOptions ): void; + setUserProperties: ( + properties: { [key: string]: unknown }, + options: AnalyticsCallOptions + ) => void; } export interface AnalyticsCallOptions { diff --git a/packages/analytics/src/index.ts b/packages/analytics/src/index.ts index 7fa2e8fa10b..a582471f6aa 100644 --- a/packages/analytics/src/index.ts +++ b/packages/analytics/src/index.ts @@ -33,9 +33,9 @@ import { InstanceFactoryOptions } from '@firebase/component'; import { ERROR_FACTORY, AnalyticsError } from './errors'; -import { logEvent } from './api'; +import { logEvent, setUserProperties } from './api'; import { name, version } from '../package.json'; -import { AnalyticsCallOptions } from './public-types'; +import { AnalyticsCallOptions, CustomParams } from './public-types'; import '@firebase/installations'; declare global { @@ -79,7 +79,11 @@ function registerAnalytics(): void { eventName: string, eventParams?: { [key: string]: unknown }, options?: AnalyticsCallOptions - ) => logEvent(analytics, eventName, eventParams, options) + ) => logEvent(analytics, eventName, eventParams, options), + setUserProperties: ( + properties: CustomParams, + options: AnalyticsCallOptions + ) => setUserProperties(analytics, properties, options) }; } catch (e) { throw ERROR_FACTORY.create(AnalyticsError.INTEROP_COMPONENT_REG_FAILED, { From b971afe4b2488c3cdcc54ca40ac6cbaea64cfb4e Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Fri, 19 Sep 2025 12:03:22 -0700 Subject: [PATCH 2/3] make options optional --- packages/analytics-interop-types/index.d.ts | 2 +- packages/analytics/src/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/analytics-interop-types/index.d.ts b/packages/analytics-interop-types/index.d.ts index 106205a8ddc..6cb6936147b 100644 --- a/packages/analytics-interop-types/index.d.ts +++ b/packages/analytics-interop-types/index.d.ts @@ -31,7 +31,7 @@ export interface FirebaseAnalyticsInternal { ): void; setUserProperties: ( properties: { [key: string]: unknown }, - options: AnalyticsCallOptions + options?: AnalyticsCallOptions ) => void; } diff --git a/packages/analytics/src/index.ts b/packages/analytics/src/index.ts index a582471f6aa..6017aed21b0 100644 --- a/packages/analytics/src/index.ts +++ b/packages/analytics/src/index.ts @@ -82,7 +82,7 @@ function registerAnalytics(): void { ) => logEvent(analytics, eventName, eventParams, options), setUserProperties: ( properties: CustomParams, - options: AnalyticsCallOptions + options?: AnalyticsCallOptions ) => setUserProperties(analytics, properties, options) }; } catch (e) { From 19c92ee32215dba1c65bf7e7000fefb29b187459 Mon Sep 17 00:00:00 2001 From: Christina Holland Date: Mon, 22 Sep 2025 10:29:37 -0700 Subject: [PATCH 3/3] fix messaging test --- packages/messaging/src/testing/fakes/firebase-dependencies.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/messaging/src/testing/fakes/firebase-dependencies.ts b/packages/messaging/src/testing/fakes/firebase-dependencies.ts index 8fd3b219f33..ccb40f276ed 100644 --- a/packages/messaging/src/testing/fakes/firebase-dependencies.ts +++ b/packages/messaging/src/testing/fakes/firebase-dependencies.ts @@ -68,7 +68,8 @@ export function getFakeInstallations(): _FirebaseInstallationsInternal { export function getFakeAnalyticsProvider(): Provider { const analytics: FirebaseAnalyticsInternal = { - logEvent() {} + logEvent() {}, + setUserProperties() {} }; return {